Starting with late Windows 10 version, in ucrtbase, stderr is now unbuffered
whatever the type of the underlying fd (previously, native only set it to
unbuffered when attached to character fd (console, NUL...)).
This serie adds also tests for msvcrt & ucrtbase to show the discrepancies.
Note: ucrtbase's tests also include a reversed engineered structure layout
for FILE.
_get_stream_buffer_pointers already gives base, ptr and cnt, and toying with
setvbuf gave easily the rest of the fields.
Didn't spend time in guessing the flags meaning: which look different
from msvcrt's.
Related to https://bugs.winehq.org/show_bug.cgi?id=56459
@piotr: I can share the details (the access to the test result in the bug
report is limited).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5462
When using a video sample allocator, the session will allocate samples from it, then try to get some output from a transform, and if there's no output to be pulled, release the sample immediately. This will trigger the sample allocator notify callback, which will then trigger another try at pulling samples, ending up in a callback loop that can starve other working threads.
Another option here would be to keep the last returned status, and only re-try to pull samples from the allocator notify callback if we previously failed to process output because of a failed allocation.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5296