[vmkit-commits] [vmkit] r145760 - /vmkit/trunk/lib/vmkit/CommonThread/ObjectLocks.cpp

Will Dietz wdietz2 at illinois.edu
Fri Dec 2 21:57:13 PST 2011


Author: wdietz2
Date: Fri Dec  2 23:57:12 2011
New Revision: 145760

URL: http://llvm.org/viewvc/llvm-project?rev=145760&view=rev
Log:
Disable fat lock deflation code in ObjectLocks.cpp

Fixes occasional assertion failure when running on multi-core machine.

Modified:
    vmkit/trunk/lib/vmkit/CommonThread/ObjectLocks.cpp

Modified: vmkit/trunk/lib/vmkit/CommonThread/ObjectLocks.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/vmkit/CommonThread/ObjectLocks.cpp?rev=145760&r1=145759&r2=145760&view=diff
==============================================================================
--- vmkit/trunk/lib/vmkit/CommonThread/ObjectLocks.cpp (original)
+++ vmkit/trunk/lib/vmkit/CommonThread/ObjectLocks.cpp Fri Dec  2 23:57:12 2011
@@ -42,6 +42,7 @@
  
 /// initialise - Initialise the value of the lock.
 ///
+#if 0
 void ThinLock::removeFatLock(FatLock* fatLock, LockSystem& table) {
   gc* object = fatLock->associatedObject;
   llvm_gcroot(object, 0);
@@ -59,6 +60,7 @@
   assert((oldValue & NonLockBitsMask) != ID);
   fatLock->associatedObject = NULL;
 }
+#endif
   
 FatLock* ThinLock::changeToFatlock(gc* object, LockSystem& table) {
   llvm_gcroot(object, 0);
@@ -275,11 +277,13 @@
   llvm_gcroot(obj, 0);
   assert(associatedObject && "No associated object when releasing");
   assert(associatedObject == obj && "Mismatch object in lock");
+#if 0
   if (!waitingThreads && !lockingThreads &&
       internalLock.recursionCount() == 1) {
     vmkit::ThinLock::removeFatLock(this, table);
     table.deallocate(this);
   }
+#endif
   internalLock.unlock();
 }
 





More information about the vmkit-commits mailing list