From dca852468cd92ba28810362862df9ab7715b92dd Mon Sep 17 00:00:00 2001 From: rogerman Date: Fri, 14 Mar 2014 21:27:42 +0000 Subject: [PATCH] Cocoa Port: - Fix intermittent freeze on app exit when running on OS X v10.5 Leopard. --- desmume/src/cocoa/cocoa_core.mm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/desmume/src/cocoa/cocoa_core.mm b/desmume/src/cocoa/cocoa_core.mm index 55e2c25a8..d12ef0404 100644 --- a/desmume/src/cocoa/cocoa_core.mm +++ b/desmume/src/cocoa/cocoa_core.mm @@ -157,23 +157,23 @@ volatile bool execute = true; { [self setCoreState:CORESTATE_PAUSE]; + [self removeAllOutputs]; + [cdsOutputList release]; + + [self setCdsController:nil]; + [self setCdsFirmware:nil]; + [self setCdsGPU:nil]; + pthread_mutex_lock(&threadParam.mutexThreadExecute); threadParam.exitThread = true; pthread_cond_signal(&threadParam.condThreadExecute); pthread_mutex_unlock(&threadParam.mutexThreadExecute); pthread_join(coreThread, NULL); - coreThread = nil; + coreThread = NULL; + pthread_mutex_destroy(&threadParam.mutexThreadExecute); pthread_cond_destroy(&threadParam.condThreadExecute); - - self.cdsController = nil; - self.cdsFirmware = nil; - self.cdsGPU = nil; - - [self removeAllOutputs]; - [cdsOutputList release]; - pthread_mutex_destroy(&threadParam.mutexOutputList); pthread_mutex_destroy(&threadParam.mutexCoreExecute); @@ -1070,7 +1070,7 @@ static void* RunCoreThread(void *arg) } while (!param->exitThread); - return nil; + return NULL; } static int CalculateFrameSkip(uint64_t timeBudgetMachAbsTime, uint64_t frameStartMachAbsTime)