aboutsummaryrefslogtreecommitdiff
path: root/common/coroutines.cpp
diff options
context:
space:
mode:
authorD G Turner2012-10-12 17:03:32 +0100
committerD G Turner2012-10-12 17:03:32 +0100
commit151b7beb47ec4b964862d6779bd48e3a33482bbd (patch)
tree867717c5266d0908d95edd82560599be20a4ede9 /common/coroutines.cpp
parent80af0e239473f85c49cc2da3c848dfcde41d4a37 (diff)
parent2b55837650c4229dc3d75b660cecfc7a3292e5e0 (diff)
downloadscummvm-rg350-151b7beb47ec4b964862d6779bd48e3a33482bbd.tar.gz
scummvm-rg350-151b7beb47ec4b964862d6779bd48e3a33482bbd.tar.bz2
scummvm-rg350-151b7beb47ec4b964862d6779bd48e3a33482bbd.zip
Merge branch 'master' into teenagentRefactor
Conflicts: engines/teenagent/callbacks.cpp
Diffstat (limited to 'common/coroutines.cpp')
-rw-r--r--common/coroutines.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/common/coroutines.cpp b/common/coroutines.cpp
index 042b15b5d7..849b881177 100644
--- a/common/coroutines.cpp
+++ b/common/coroutines.cpp
@@ -433,9 +433,9 @@ void CoroutineScheduler::waitForMultipleObjects(CORO_PARAM, int nCount, uint32 *
// Determine the signalled state
_ctx->pidSignalled = (_ctx->pProcess) || !_ctx->pEvent ? false : _ctx->pEvent->signalled;
- if (bWaitAll && _ctx->pidSignalled)
+ if (bWaitAll && !_ctx->pidSignalled)
_ctx->signalled = false;
- else if (!bWaitAll & _ctx->pidSignalled)
+ else if (!bWaitAll && _ctx->pidSignalled)
_ctx->signalled = true;
}
@@ -445,7 +445,7 @@ void CoroutineScheduler::waitForMultipleObjects(CORO_PARAM, int nCount, uint32 *
for (_ctx->i = 0; _ctx->i < nCount; ++_ctx->i) {
_ctx->pEvent = getEvent(pidList[_ctx->i]);
- if (_ctx->pEvent->manualReset)
+ if (!_ctx->pEvent->manualReset)
_ctx->pEvent->signalled = false;
}
@@ -717,12 +717,12 @@ void CoroutineScheduler::pulseEvent(uint32 pidEvent) {
EVENT *evt = getEvent(pidEvent);
if (!evt)
return;
-
+
// Set the event as signalled and pulsing
evt->signalled = true;
evt->pulsing = true;
- // If there's an active process, and it's not the first in the queue, then reschedule all
+ // If there's an active process, and it's not the first in the queue, then reschedule all
// the other prcoesses in the queue to run again this frame
if (pCurrent && pCurrent != active->pNext)
rescheduleAll();