Comment #9 on issue 19276 by hc...@chromium.org: Browser hangs very  
frequently during video hardware configuration testing
http://code.google.com/p/chromium/issues/detail?id=19276

Since testers use remote desktop extensively for testing <video>, this  
becomes a
bigger problem and may impose potential deadlock for other sound driver too.

Also report my findings about hacking waveout_output_win.cc, from the stack  
trace it
looks like the lock happens in waveOutWrite() in Start() and  
WaveCallback(). It looks
like to me the fact that we are calling waveOutWrite in two threads is  
causing the
deadlock. I tried to wrap the loop of Start() that calls waveOutWrite()  
with a pair
of waveOutPause() and waveOutRestart() I don't get the deadlock anymore,  
e.g.:

Start() {
   ...

   ::waveOutPause(waveout_);
   for (int ix = 0; ix != kNumBuffers; ++ix) {
     ::waveOutWrite(waveout_, ...);
   }
   ::waveOutRestart(waveout_);
}

If calling waveOutPause() does inhibit winmm from calling us from another  
thread,
this maybe a solution to solve the deadlock. Any thoughts?


--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

--~--~---------~--~----~------------~-------~--~----~
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/group/chromium-bugs
-~----------~----~----~----~------~----~------~--~---

Reply via email to