]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - kjs/JSLock.cpp
JavaScriptCore-466.1.3.tar.gz
[apple/javascriptcore.git] / kjs / JSLock.cpp
index 4439c4844b1f28974ebf4689c32c9ed5bd7717f5..ce55df39be00be2cf2c745161e4d3b1de9048a08 100644 (file)
@@ -149,20 +149,19 @@ int JSLock::lockCount()
 extern "C" {
 #endif
 
-int JSLockDropAllLocks(void)
+static JSLock::DropAllLocks* sLockDropper = NULL;
+    
+void JSLockDropAllLocks(void)
 {
-    KJS::JSLock::lock();
-    int lockCount = KJS::JSLock::lockCount();
-    for (int i = 0; i < lockCount; i++)
-        KJS::JSLock::unlock();
-    return lockCount - 1;
+    ASSERT(sLockDropper == NULL);
+    sLockDropper = new JSLock::DropAllLocks();
 }
 
-void JSLockRecoverAllLocks(int lockCount)
+void JSLockRecoverAllLocks(void)
 {
-    ASSERT(KJS::JSLock::lockCount() == 0);
-    for (int i = 0; i < lockCount; i++)
-        KJS::JSLock::lock();
+    ASSERT(sLockDropper != NULL);
+    delete sLockDropper;
+    sLockDropper = NULL;
 }    
 
 static pthread_t javaScriptCollectionThread = 0;