James Abbatiello wrote:
> 
> Continuing in my efforts to get MOD4WIN working, I have come across the
> following problem.  Its a 16bit application and it calls waveOutReset
> while holding the Win16Mutex (SysLevel 1).  Wine attempts to send a
> notify message back about this.  However, the notify gets sent from a
> different thread.  That thread needs to send the notify to 16bit code
> and thus needs to obtain the lock.  The original thread is still holding
> the lock and is waiting for the other thread to finish sending the
> notify before continuing.
> 
> The following patch removes the problem for me.  I just arbitrarily
> stuck a ReleaseThunkLock/RestoreThunkLock around the wait call in the
> first thread.  Is this the right solution and the correct place to put
> it?  If so, do the other similar functions there need the same thing?

well, if this is needed, it shall not be done in wineoss/audio.c which
is meant to be pure 32 bit DLL, but probably in 16 bit MMSYSTEM.DLL.

In Windows, MMSYSTEM thunks up to WINMM (32 bit)hence releasing the
locks. currently in Wine, MMSYSTEM just 32 bit calls WINMM, which
can be the cause of the issues

can you send me a -debugmsg +mmsys,+wave,+msacm,+relay=mmsystem:winmm
just to check

A+
-- 
---------------
Eric Pouech (http://perso.wanadoo.fr/eric.pouech/)
"The future will be better tomorrow", Vice President Dan Quayle

Reply via email to