well, `WMReader_Stop` only queues the stop op, doesn't wait for it to complete. there is also no mechanism for waiting for op completion there.
Sorry, that was imprecise, not the Stop() per se indeed but we do wait for WMT_STOPPED immediately after in the same function.
and after reader is stopped there is at least one more possible status (`WMT_CLOSED`), which the callback may be invoked with. (on that thought, maybe `asf_reader_cleanup_stream` should call WMReader_Close instead of just Stop).
No, we don't want to Close() in cleanup_stream(), because the stream can be started again with the same file. But why is WMT_CLOSED a problem? We don't do anything in response to it.
do you suggest we add a event so we can wait for the completion of at least the close op?
Do we actually need to? Does native wmvcore really send WMT_CLOSED *after* the last reference to the IWMReader is released? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9858#note_126509