From 3dec7d563a2f3e1eb967ce2054a00b6620e3558c Mon Sep 17 00:00:00 2001 From: The Android Open Source Project Date: Mon, 2 Mar 2009 22:54:33 -0800 Subject: auto import from //depot/cupcake/@137055 --- libs/utils/Threads.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'libs/utils') diff --git a/libs/utils/Threads.cpp b/libs/utils/Threads.cpp index 74271ba..5f407a9 100644 --- a/libs/utils/Threads.cpp +++ b/libs/utils/Threads.cpp @@ -896,6 +896,7 @@ void ReadWriteLock::unlockForRead() { mLock.lock(); if (mNumReaders == 0) { + mLock.unlock(); LOG(LOG_WARN, "thread", "WARNING: unlockForRead requested, but not locked\n"); return; @@ -961,6 +962,7 @@ void ReadWriteLock::unlockForWrite() { mLock.lock(); if (mNumWriters == 0) { + mLock.unlock(); LOG(LOG_WARN, "thread", "WARNING: unlockForWrite requested, but not locked\n"); return; @@ -972,7 +974,7 @@ void ReadWriteLock::unlockForWrite() //printf(" wrlk held %.3f msec\n", // (double) mDebugTimer.durationUsecs() / 1000.0); #endif - // mWriteWaiter.signal(); // should other writers get first dibs? + mWriteWaiter.signal(); // should other writers get first dibs? //printf("+++ signaling readers (if any)\n"); mReadWaiter.broadcast(); // wake all readers (if any) mLock.unlock(); -- cgit v1.1