[Bug 38241] Open General crashes when exiting.

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Apr 29 10:44:03 CDT 2016


https://bugs.winehq.org/show_bug.cgi?id=38241

--- Comment #6 from Andrew Eikum <aeikum at codeweavers.com> ---
Created attachment 54385
  --> https://bugs.winehq.org/attachment.cgi?id=54385
winmm/tests: MCI rejects commands from threads that didn't open the device

(In reply to Sagawa from comment #1)
> Created attachment 51049 [details]
> proposed patch
> 
> From my inspection, this is MCI Mpegvideo driver, mciqtz32's issue.
> Generally, mci "open" and "close" can call in different threads for the same
> device.
> Therefore, the following case triggers 'CoUninitialize Mismatch' in the
> current implementation.
> 1. thread A, open foo.mp3 with MPEGVideo driver. i.e. 'open foo.mp3 alias
> foo type MPEGVideo'. MCIQTZ_mciOpen() silently calls CoInitialize() for
> thread A.
> 2. thread A, play foo.
> 3. thread B, close foo. MCIQTZ_mciClose() implicitly calls CoUnintialize()
> for thread B though the thread is not initialized.
> 
> Attached proposed patch introduces a task thread to avoid above situations,
> and DriverProc passes the arguments to the thread.

Some tests indicate this is wrong. MCI seems to reject commands from the thread
that didn't open them with MCIERR_INVALID_DEVICE_NAME. See attached tests, run
here:

https://testbot.winehq.org/JobDetails.pl?Key=22738

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list