diff --git a/components/sceneutil/workqueue.cpp b/components/sceneutil/workqueue.cpp index 9f23fba2dd..b642687f0f 100644 --- a/components/sceneutil/workqueue.cpp +++ b/components/sceneutil/workqueue.cpp @@ -17,8 +17,10 @@ void WorkTicket::waitTillDone() void WorkTicket::signalDone() { - OpenThreads::ScopedLock lock(mMutex); - mDone.exchange(1); + { + OpenThreads::ScopedLock lock(mMutex); + mDone.exchange(1); + } mCondition.broadcast(); }