[vmkit-commits] [vmkit] r120125 - /vmkit/branches/precise/mmtk/mmtk-j3/Lock.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Wed Nov 24 14:04:05 PST 2010
Author: geoffray
Date: Wed Nov 24 16:04:05 2010
New Revision: 120125
URL: http://llvm.org/viewvc/llvm-project?rev=120125&view=rev
Log:
Do not go into GC when using a GC lock! Fixes memory errors with marksweep GC.
Modified:
vmkit/branches/precise/mmtk/mmtk-j3/Lock.cpp
Modified: vmkit/branches/precise/mmtk/mmtk-j3/Lock.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/precise/mmtk/mmtk-j3/Lock.cpp?rev=120125&r1=120124&r2=120125&view=diff
==============================================================================
--- vmkit/branches/precise/mmtk/mmtk-j3/Lock.cpp (original)
+++ vmkit/branches/precise/mmtk/mmtk-j3/Lock.cpp Wed Nov 24 16:04:05 2010
@@ -25,10 +25,16 @@
extern "C" void Java_org_j3_mmtk_Lock_acquire__(Lock* l) {
+ bool saved = mvm::Thread::get()->inRV;
+ mvm::Thread::get()->inRV = true;
l->spin.acquire();
+ mvm::Thread::get()->inRV = saved;
}
extern "C" void Java_org_j3_mmtk_Lock_check__I (Lock* l, int i) { UNIMPLEMENTED(); }
extern "C" void Java_org_j3_mmtk_Lock_release__(Lock* l) {
+ bool saved = mvm::Thread::get()->inRV;
+ mvm::Thread::get()->inRV = true;
l->spin.release();
+ mvm::Thread::get()->inRV = saved;
}
More information about the vmkit-commits
mailing list