Kernel - Fixed double-lock caused by workqueue
authorJohn Hodge <[email protected]>
Wed, 30 Nov 2011 09:39:34 +0000 (17:39 +0800)
committerJohn Hodge <[email protected]>
Wed, 30 Nov 2011 09:39:34 +0000 (17:39 +0800)
Kernel/workqueue.c

index cfdf428..2db4bf8 100644 (file)
@@ -65,10 +65,9 @@ void Workqueue_AddWork(tWorkqueue *Queue, void *Ptr)
        
        if( Queue->Sleeper )
        {       
-               SHORTLOCK( &glThreadListLock );
+               Debug("Waking %p", Queue->Sleeper);
                if( Queue->Sleeper->Status != THREAD_STAT_ACTIVE )
                        Threads_AddActive(Queue->Sleeper);
-               SHORTREL( &glThreadListLock );
                Queue->Sleeper = NULL;
        }
        SHORTREL(&Queue->Protector);

UCC git Repository :: git.ucc.asn.au