Avoid a possible deadlock when stopping playback
Christian Costa
titan.costa at wanadoo.fr
Wed Mar 17 12:55:40 CST 2004
Dmitry Timoshkov wrote:
>"Christian Costa" <titan.costa at wanadoo.fr> wrote:
>
>
>
>>Are you sure this is usefull.
>>How can SetEvent cause a deadlock?
>>
>>
>
>That's exactly the same case your recent patch has fixed.
>
My patch was intended to fix a deadlock with the thread of the wave
driver not with the async one.
SetEvent causes a reschedule in Wine (since it does a call to the
server) that may help avoiding a deadlock
but this only hides the problem.
>If the MCI command was sent asynchronously (without MCI_WAIT)
>an thread gets created and the command gets executed there.
>
>So, if an app does:
>mciSendCommand(MCI_PLAY); // an async thread gets created
>and right after that:
>mciSendCommand(MCI_STOP);
>
>last command hangs forever.
>
>
>
Do you have a test app?
BTW, I've found more wave calls to "protect", will send a patch. :-)
Bye,
Christian
More information about the wine-devel
mailing list