I have two .Net console applications targeting .Net Framework 4.7.2, "produce.exe" and "consume.exe" with their respective sources
using System;using System.Threading; namespace Produce { class Program { static void Main(string[] args) { Thread.Sleep(100); Console.WriteLine("Hello World."); } } } and using System; namespace Consume { class Program { static void Main(string[] args) { var input = Console.In.ReadToEnd(); Console.WriteLine(input); } } } Running $ ./produce.exe | ./consume.exe in Cygwin Terminal I expect the output to be Hello World. But there is no output and the second process, consume.exe, hangs at ReadToEnd(). This was verified by looking at the running processes with ps aux when running the consume.exe in the background as well as by attaching the Visual Studio debugger. Piping produce.exe into cat works correctly. Piping some more content into consume.exe also fails (e.g. find * /usr | consume) Executing the same command in Windows Command works correctly. Notice that piping into consume.exe works if there is no delay in the producer. I had first opened this issue on Github in the git-for-windows project, as I experienced the issue with Git Bash in Windows first: https://github.com/git-for-windows/git/issues/3075 I then installed the current version of Cygwin and could replicate the same issue there. PS: I have not attached the output of cygcheck because it would reveal information of my work environment I will not share. Greetings, Jasper -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple