X-Git-Url: https://git.ucc.asn.au/?p=tpg%2Facess2.git;a=blobdiff_plain;f=KernelLand%2FKernel%2Frwlock.c;fp=KernelLand%2FKernel%2Frwlock.c;h=1fd64592325ee191dd2f54eb69a1ba792d121306;hp=c39ce10abcef7037a1e40daf7b1bb6d2d78d1977;hb=845b6f9d90bb87b5e760e4d49aa93b0e003ab750;hpb=67a7fe2bb79eceaf10c572a99bd8345c4e81cf5b diff --git a/KernelLand/Kernel/rwlock.c b/KernelLand/Kernel/rwlock.c index c39ce10a..1fd64592 100644 --- a/KernelLand/Kernel/rwlock.c +++ b/KernelLand/Kernel/rwlock.c @@ -21,7 +21,8 @@ int RWLock_AcquireRead(tRWLock *Lock) SHORTLOCK( &Lock->Protector ); // Check if the lock is already held by a writer - if( Lock->Owner ) + // - OR, there's a writer waiting to write + if( Lock->Owner || Lock->WriterWaiting ) { LOG("Waiting"); Threads_int_Sleep(THREAD_STAT_RWLOCKSLEEP, Lock, 0,