On Fri, Jul 30, 2004 at 12:14:54PM +0200, Corinna Vinschen wrote: > On Jul 30 09:33, Alexander Gottwald wrote: > > Christopher Faylor wrote: > > > > > > This shows write() being called repeatedly. The fact that > > > setmode_helper shows up a bunch of time doesn't mean that it is caught > > > in a loop. You can't infer that from strace. You'd need to confirm > > > that with gdb. > > > > But why does it change repeatedly from text to bin and back to text? > > That's a good question. The output is generated by calls to the setmode > function. Since setmode isn't called from inside Cygwin, it must be > called from the application. It looks like a race but actually that's > something you will have to debug. Concentrate on calls to getmode and > setmode for the beginning.
I think it's because newlib handles textmode itself, instead of relying on Cygwin. So before every write it changes the mode to binmode, then it calls write, and finally puts the mode back into text mode. In addition setmode calls setmode_helper in syscalls.cc, and it walks all file descriptors. The word "improbable" in the strace output should be removed! However the loop seems to be run twice, not sure why. Pierre -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/