X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Frwlock.c;h=1fd64592325ee191dd2f54eb69a1ba792d121306;hb=6274aaa8894e14462a36c69090e2f9235f130e31;hp=c39ce10abcef7037a1e40daf7b1bb6d2d78d1977;hpb=d3c92d9489a096db306e5a028ad65ff95431ba7d;p=tpg%2Facess2.git 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,