winmm: Allow a FORCE_SHUTDOWN on driver close?
Maarten Lankhorst
m.b.lankhorst at gmail.com
Fri Apr 20 13:43:57 CDT 2007
After trying to implement the alsa mixer I came across a problem: If
winmm is unloading, a deadlock could occur if during unloading it's
waiting for another thread.
In winmm itself this isn't much of a problem: there aren't any threads.
However, the drivers used by winmm may have threads, and if the
application doesn't shut down their drivers properly, it could be
possible that a deadlock occurs when the drivers unload because winmm
unloads.
For that reason I propose to add a flag that's passed to the sound
drivers that signals a shutdown in DLL_DETACH context, so that drivers
can choose to call TerminateThread instead of waiting tidily for the
thread to finish running.
It's not pretty, but I don't see another way how to make sure that
deadlocks won't occur when unloading winmm. I'm open for other
suggestions though.
Maarten
More information about the wine-devel
mailing list