msvcrt: Make the first call to fwrite bufferred (try2)

Andreas Fuchs afuchs at hartle-klug.de
Thu Oct 2 02:09:19 CDT 2014


Hi Piotr, Hi all,

I traced down this commit as the origin of the regression, where I cannot parse stdout of wine correctly anymore.
See also https://bugs.winehq.org/show_bug.cgi?id=37345

I hope, sombody knowledgable (Piotr maybe you as the author) could help me figure this out or even provide a fix...

Description:
When calling wine from another process after redirecting stdout to a pipe, wine does not flush the stdout-buffer correctly anymore (Wine 1.6 did correctly).

Attached is a usecase. To test do:
i686-w64-mingw32-gcc helloworld.c
gcc callwine.c
./a.out

What will happen is:
- on a buggy wine it will take 10 seconds and then all of the stdout-buffer is flushed on the exit of the child. (imagine the child would run longer than the 10 seconds)
- on a good wine we will see some stdout-content then 10 second sleep and then the rest of the content.

This is a regression that happened between 1.7.4 and 1.7.5. The bisect identified commit afec0b00bd6250fe21e8deccbc8116a4aca6a7a4 "msvcrt: Make the first call to fwrite buffered." as problem.

The attached patch is a revert of this commit ported forward to 1.7.27. Unfortunately I don't quite grasp the logics of the offending commit. If somebody who knows that patch could help, I'd highly appreciate it.

Cheers,
Andreas

-------------- next part --------------
A non-text attachment was scrubbed...
Name: helloworld.c
Type: text/x-csrc
Size: 163 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20141002/db073473/attachment-0004.c>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: callwine.c
Type: text/x-csrc
Size: 1040 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20141002/db073473/attachment-0005.c>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Revert-msvcrt-Make-the-first-call-to-fwrite-buffered.patch
Type: text/x-patch
Size: 3371 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20141002/db073473/attachment-0002.bin>


More information about the wine-devel mailing list