Module: wine Branch: master Commit: 998af35a3e587c8ce4a5f3fb130f9d942df72bda URL: http://source.winehq.org/git/wine.git/?a=commit;h=998af35a3e587c8ce4a5f3fb13...
Author: Akihiro Sagawa sagawa.aki@gmail.com Date: Tue Jun 2 01:22:09 2015 +0900
mciqtz32: Watch the player thread while waiting a player task.
---
dlls/mciqtz32/mciqtz.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/dlls/mciqtz32/mciqtz.c b/dlls/mciqtz32/mciqtz.c index 413c2f6..d018a54 100644 --- a/dlls/mciqtz32/mciqtz.c +++ b/dlls/mciqtz32/mciqtz.c @@ -75,6 +75,8 @@ static LRESULT MCIQTZ_relayTaskMessage(DWORD_PTR dwDevID, UINT wMsg, { WINE_MCIQTZ *wma; LRESULT res; + HANDLE handles[2]; + DWORD ret; TRACE("(%08lX, %08x, %08x, %08lx)\n", dwDevID, wMsg, dwFlags, lpParms);
wma = MCIQTZ_mciGetOpenDev(dwDevID); @@ -86,7 +88,11 @@ static LRESULT MCIQTZ_relayTaskMessage(DWORD_PTR dwDevID, UINT wMsg, wma->task.flags = dwFlags; wma->task.parms = lpParms; SetEvent(wma->task.notify); - if (WaitForSingleObject(wma->task.done, INFINITE) == WAIT_OBJECT_0) + handles[0] = wma->task.done; + handles[1] = wma->task.thread; + ret = WaitForMultipleObjects(sizeof(handles)/sizeof(handles[0]), handles, + FALSE, INFINITE); + if (ret == WAIT_OBJECT_0) res = wma->task.res; else res = MCIERR_INTERNAL;