http://bugs.winehq.org/show_bug.cgi?id=20232
--- Comment #7 from Eric Pouech eric.pouech@orange.fr 2009-10-17 02:38:17 --- Created an attachment (id=24179) --> (http://bugs.winehq.org/attachment.cgi?id=24179) patch for mciwave.c (better sync of async commands)
actually, some issues brought to light by the new test file are because our async command handling is not correctly synchronized (sic) so basically, the attached patch modifies the way async command management should be done: - it splits command management into two blocks 1/ the first block, which is not done asynchronously (ie that we'll be performed before the MCI command returns) 2/ the second block, which will be run asynchronously - so for example, in a play command, all the init, wave out stream opening, from/to position computations... is done in first block ; the actual playback (aka feeding the wave headers) is done in second block - the attached patch is a quick hack for testing purposes (on my machine it works correctly, ie the hang is removed, and the test crash in NULL pointer deref in MCI_SYSINFO, that should be easy to fix)