Bringing some discussion from #632 to this dedicated issue. # Problem The way we currently handle STDIN and STDOUT can cause synchronization problems: #510 is a terrible bug. The issue above is also a reason why we can't have progress bars back: #632. Besides bugs and features, it also causes performance problems: #77, our worker threads block progress to do blocking IO. # Solution @AntoniosBarotsis came up with a solution (sent in #632's discussion):  Basically, this enables us to solve all the previously listed issues! Again, discussion and more details can be found at #632.