From 4f2b3feee4f078c9733678b9e06dbe49b59d13c2 Mon Sep 17 00:00:00 2001 From: rogerman Date: Wed, 4 Jul 2012 05:17:48 +0000 Subject: [PATCH] Cocoa Port: - Fix thread-safety issue when changing the execution speed. --- desmume/src/cocoa/cocoa_core.mm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/desmume/src/cocoa/cocoa_core.mm b/desmume/src/cocoa/cocoa_core.mm index 613cc22f9..3a0267af7 100644 --- a/desmume/src/cocoa/cocoa_core.mm +++ b/desmume/src/cocoa/cocoa_core.mm @@ -589,7 +589,7 @@ static BOOL isCoreStarted = NO; theSpeed = SPEED_SCALAR_MIN; } - pthread_mutex_unlock(&threadParam.mutexThreadExecute); + pthread_mutex_lock(&threadParam.mutexThreadExecute); uint64_t timeBudgetNanoseconds = (uint64_t)(DS_SECONDS_PER_FRAME * 1000000000.0 / theSpeed); AbsoluteTime timeBudgetAbsTime = NanosecondsToAbsolute(*(Nanoseconds *)&timeBudgetNanoseconds); threadParam.timeBudgetMachAbsTime = *(uint64_t *)&timeBudgetAbsTime; @@ -597,7 +597,7 @@ static BOOL isCoreStarted = NO; } else { - pthread_mutex_unlock(&threadParam.mutexThreadExecute); + pthread_mutex_lock(&threadParam.mutexThreadExecute); threadParam.timeBudgetMachAbsTime = 0; pthread_mutex_unlock(&threadParam.mutexThreadExecute); }