From: John Hodge Date: Sun, 15 Jan 2012 09:48:07 +0000 (+0800) Subject: Kernel/mutex - Fixed double lock on glThreadListLock X-Git-Tag: rel0.14~10 X-Git-Url: https://git.ucc.asn.au/?a=commitdiff_plain;h=77e039d9daf25c0334952854db83672119a1af31;p=tpg%2Facess2.git Kernel/mutex - Fixed double lock on glThreadListLock --- diff --git a/Kernel/mutex.c b/Kernel/mutex.c index 4b4c4e4f..597242b6 100644 --- a/Kernel/mutex.c +++ b/Kernel/mutex.c @@ -27,7 +27,7 @@ int Mutex_Acquire(tMutex *Mutex) // Get protector SHORTLOCK( &Mutex->Protector ); - //Log("Mutex_Acquire: (%p)", Mutex); +// Log("Mutex_Acquire: (%p)", Mutex); // Check if the lock is already held if( Mutex->Owner ) { @@ -94,17 +94,12 @@ void Mutex_Release(tMutex *Mutex) Mutex->Owner = Mutex->Waiting; // Set owner Mutex->Waiting = Mutex->Waiting->Next; // Next! // Reset ->LastWaiting to NULL if we have just removed the last waiting thread - // 2010-10-02 21:50 - Comemerating the death of the longest single - // blocker in the Acess2 history. REMEMBER TO - // FUCKING MAINTAIN YOUR FUCKING LISTS DIPWIT if( Mutex->LastWaiting == Mutex->Owner ) Mutex->LastWaiting = NULL; // Wake new owner - SHORTLOCK( &glThreadListLock ); if( Mutex->Owner->Status != THREAD_STAT_ACTIVE ) Threads_AddActive(Mutex->Owner); - SHORTREL( &glThreadListLock ); } else { Mutex->Owner = NULL;