[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