On 10/2/2017 9:06 PM, Matthew McGIllis wrote: > > If I use the same code from bash I get: > > $ ./input.exe | ./simple.exe > line1 > <—— Hangs indefinitely until you kill it or ctrl-c > > Some how if input has a delay between its line output then things will get > hung, if you remove the sleep from the input things work, add the sleep in it > fails. > > > input.exe is generate from input.vb using: vbc input.vb > > input.vb file: > Module input > Sub Main() > Console.Out.WriteLine("line1") > Threading.Thread.Sleep(2000) > Console.Out.WriteLine("line2") > End Sub > End Module > > simple.exe is generated from simple.vb using: vbc simple.vb > > simple.vb file: > Module simple > Sub Main() > Dim line As String > line = Console.In.ReadLine() > Do Until line Is Nothing > Console.Out.WriteLine(line) > line = Console.In.ReadLine() > Loop > End Sub > End Module > > Microsoft (R) Visual Basic Compiler version 11.0.50938.18408 > > The above problem was found when attempting to use cygwin perl using > IPC::Open2 to control stdin and stdout of a VB program. So this may not be a > bash specific issue but some sort of generic pipe issue in cygwin.
It is a known issue of the PTY emulation between a Cygwin runtime and a Windows runtime enabled app. It just cannot be fixed. You're even lucky that it works in the Windows command shell. Either convert simple.vb to simple.c and use Cygwin's gcc to build it or create a Windows runtime version of input.exe. -- cyg Simple -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple