[vmkit-commits] [vmkit] r180516 - Cleaning the code

Peter Senna Tschudin peter.senna at gmail.com
Thu Apr 25 10:20:30 PDT 2013


Author: peter.senna
Date: Thu Apr 25 12:19:00 2013
New Revision: 180516

URL: http://llvm.org/viewvc/llvm-project?rev=180516&view=rev
Log:
Cleaning the code
(cherry picked from commit 89297bb89a0259c79cff462af2daab2fb96e9abe)

Modified:
    vmkit/trunk/lib/j3/ClassLib/GNUClasspath/GNuClasspathUnsafe.inc
    vmkit/trunk/lib/j3/ClassLib/Unsafe.inc
    vmkit/trunk/lib/vmkit/CommonThread/Sigsegv.cpp
    vmkit/trunk/lib/vmkit/CommonThread/ctlock.cpp

Modified: vmkit/trunk/lib/j3/ClassLib/GNUClasspath/GNuClasspathUnsafe.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/GNUClasspath/GNuClasspathUnsafe.inc?rev=180516&r1=180515&r2=180516&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/GNUClasspath/GNuClasspathUnsafe.inc (original)
+++ vmkit/trunk/lib/j3/ClassLib/GNUClasspath/GNuClasspathUnsafe.inc Thu Apr 25 12:19:00 2013
@@ -5,6 +5,7 @@ extern "C" {
 
 JNIEXPORT void JNICALL Java_sun_misc_Unsafe_unpark(
 JavaObject* unsafe, JavaObject* thread) {
+//return;
   llvm_gcroot(unsafe, 0);
   llvm_gcroot(thread, 0);
   JavaObject* vmthread;
@@ -31,4 +32,4 @@ JavaObject* unsafe, JavaObject* thread)
   //fprintf(stderr, "unparking done %lld\n", th->getThreadID());
 }
 
-}
\ No newline at end of file
+}

Modified: vmkit/trunk/lib/j3/ClassLib/Unsafe.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/Unsafe.inc?rev=180516&r1=180515&r2=180516&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/Unsafe.inc (original)
+++ vmkit/trunk/lib/j3/ClassLib/Unsafe.inc Thu Apr 25 12:19:00 2013
@@ -484,6 +484,7 @@ JavaObject* unsafe, jlong ptr, jlong val
 //===--- Park/Unpark thread support ---------------------------------------===//
 JNIEXPORT void JNICALL Java_sun_misc_Unsafe_park(
 JavaObject* unsafe, jboolean isAbsolute, jlong time) {
+//return;
   llvm_gcroot(unsafe, 0);
   JavaThread* thread = (JavaThread*)JavaThread::get();
   thread->parkLock.park(isAbsolute, time, thread);

Modified: vmkit/trunk/lib/vmkit/CommonThread/Sigsegv.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/vmkit/CommonThread/Sigsegv.cpp?rev=180516&r1=180515&r2=180516&view=diff
==============================================================================
--- vmkit/trunk/lib/vmkit/CommonThread/Sigsegv.cpp (original)
+++ vmkit/trunk/lib/vmkit/CommonThread/Sigsegv.cpp Thu Apr 25 12:19:00 2013
@@ -97,7 +97,7 @@ void sigsegvHandler(int n, siginfo_t *in
 }
 
 void sigsTermHandler(int n, siginfo_t *info, void *context) {
-	fprintf(stderr, "\nJVM termination because user request\n");
+	//fprintf(stderr, "\nJVM termination because user request\n");
 	finishForCtrl_C = true;
 	condForCtrl_C.signal();
 	//lockForCtrl_C.Lock();

Modified: vmkit/trunk/lib/vmkit/CommonThread/ctlock.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/vmkit/CommonThread/ctlock.cpp?rev=180516&r1=180515&r2=180516&view=diff
==============================================================================
--- vmkit/trunk/lib/vmkit/CommonThread/ctlock.cpp (original)
+++ vmkit/trunk/lib/vmkit/CommonThread/ctlock.cpp Thu Apr 25 12:19:00 2013
@@ -100,22 +100,36 @@ void LockNormal::unlock(vmkit::Thread* o
 
 void LockRecursive::lock() {
   if (!selfOwner()) {
+
+
     Thread* th = Thread::get();
     th->enterUncooperativeCode();
     pthread_mutex_lock((pthread_mutex_t*)&internalLock);
+    assert((n == 0) && "Inconsistent state of recursive lock");
     th->leaveUncooperativeCode();
     owner = th;
   }
+  else {
+	  assert((n != 0) && "Inconsistent state of recursive lock");
+  }
   ++n;
 }
 
 int LockRecursive::tryLock() {
-  int res = 0;
+  int res = -1;
   if (!selfOwner()) {
+	  Thread* th = Thread::get();
+	  th->enterUncooperativeCode();
     res = pthread_mutex_trylock((pthread_mutex_t*)&internalLock);
-    owner = vmkit::Thread::get();
+    if (!res) {
+    	  ++n;
+    	  owner = vmkit::Thread::get();
+    }
+    th->leaveUncooperativeCode();
   }
-  ++n;
+  else
+	  n++;
+
   return res;
 }
 
@@ -209,12 +223,13 @@ int Cond::timedWait(Lock* l, struct time
   int res = pthread_cond_timedwait((pthread_cond_t*)&internalCond, 
                                    (pthread_mutex_t*)&(l->internalLock),
                                    &timeout);
-  th->leaveUncooperativeCode();
   
+
   if (res != 0) {
   		pthread_cond_destroy (&internalCond) ;
   		pthread_cond_init    (&internalCond, NULL);
   }
+  th->leaveUncooperativeCode();
 
   assert((!res || res == ETIMEDOUT) && "Error on timed wait");
   l->unsafeLock(n);
@@ -249,7 +264,7 @@ int Cond::myTimeWait(Lock* l, bool isAbs
 		  absTime.tv_nsec = 0;
 		}
 		else {
-		  absTime.tv_sec = now.tv_sec + secs + 0; // 150 / 850 / 1000
+		  absTime.tv_sec = now.tv_sec + secs + 1100; // 150 / 850 / 1000
 		  absTime.tv_nsec = (nsec % NANOSECS_PER_SEC) + now.tv_usec*1000;
 		  if (absTime.tv_nsec >= NANOSECS_PER_SEC) {
 			absTime.tv_nsec -= NANOSECS_PER_SEC;
@@ -266,12 +281,13 @@ int Cond::myTimeWait(Lock* l, bool isAbs
 	int res = pthread_cond_timedwait((pthread_cond_t*)&internalCond,
 								   (pthread_mutex_t*)&(l->internalLock),
 								   &absTime);
-	th->leaveUncooperativeCode();
+
 
 	if (res != 0) {
 		pthread_cond_destroy (&internalCond) ;
 		pthread_cond_init    (&internalCond, NULL);
 	}
+	th->leaveUncooperativeCode();
 
 	assert((!res || res == ETIMEDOUT) && "Error on timed wait");
 	l->unsafeLock(n);





More information about the vmkit-commits mailing list