Zebediah Figura (@zfigura) commented about dlls/wmvcore/async_reader.c:
stream->number = number; stream->reader = reader; list_init(&stream->read_samples);
list_init(&stream->deliver_samples);
if (!(stream->read_thread = CreateThread(NULL, 0, stream_read_thread, stream, 0, NULL))) return E_OUTOFMEMORY;
if (!(stream->deliver_thread = CreateThread(NULL, 0, stream_deliver_thread, stream, 0, NULL)))
{
stream_close(stream);
return E_OUTOFMEMORY;
}
Why are we using a separate delivery thread, instead of reusing read_thread?