Bug 757375: Concurrency bug fixes (p=jasowill,r=dtomack)
authorDan Schaffer <Dan.Schaffer@adobe.com>
Thu, 25 Oct 2012 10:57:45 -0700
changeset 7574 19ecae71ae5a57974cfcb0e8bce8dd6d6367bc58
parent 7573 bf1fa4452689f16b686139f3e91608c6c163d0d8
child 7575 be44a24acfa5c64f33e923bc74e3e78a23eb90f5
push id4262
push userdschaffe@adobe.com
push dateWed, 30 Jan 2013 19:01:31 +0000
reviewersdtomack
bugs757375, 1128847, 1129056
Bug 757375: Concurrency bug fixes (p=jasowill,r=dtomack) integrate 1128847 CL@1129056
core/Isolate.cpp
--- a/core/Isolate.cpp
+++ b/core/Isolate.cpp
@@ -784,16 +784,17 @@ throw_terminated_error:
 					// In order to ensure that the lock is released even though the wait time
 					// has expired, a wait() for the minimum time must be done here. 
                     result = m_monitor.wait(0);
                 }
 				else
 				{
 					// continueWait can only be true iff a wait has occurred.
 					result = true;
+                    continueWait = false;
 				}
             }
 
             // the value of interrupt tells us if the isolate was terminated OR 
             // if a script timeout has fired; script timeouts only happen for the primordial isolate. 
 	        interrupted = isolate->isInterrupted() || isolate->getAvmCore()->interruptCheckReason(AvmCore::ScriptTimeout);
 
             // when signaled a thread will return to a blocked