Dmitry Timoshkov wrote:
"Christian Costa" titan.costa@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