27 Feb
2026
27 Feb
'26
1:42 a.m.
When _fwrite_nolock() decides that buffered output is used but the amount of data is not big enough to flush buffer and write directly, it relays buffered write to _flsbuf, byte by byte. The assumptions when buffering is disabled in _fwrite_nolock() disagree with those in _flsbuf. There are addiotional checks in msvcrt_alloc_buffer() which, in particular, auto-disable buffering for STDOUT or TTY file. That results in the app's output in those cases to be written byte by byte, which is especially unfortunate when the output handle is console and each single output roundtrip is huge. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10199#note_130659