[vmkit-commits] [vmkit] r143132 - /vmkit/trunk/lib/J3/ClassLib/OpenJDK/OpenJDK.inc
Will Dietz
wdietz2 at illinois.edu
Thu Oct 27 12:17:06 PDT 2011
Author: wdietz2
Date: Thu Oct 27 14:17:05 2011
New Revision: 143132
URL: http://llvm.org/viewvc/llvm-project?rev=143132&view=rev
Log:
OpenJDK.inc: Implement raw monitors
Modified:
vmkit/trunk/lib/J3/ClassLib/OpenJDK/OpenJDK.inc
Modified: vmkit/trunk/lib/J3/ClassLib/OpenJDK/OpenJDK.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/ClassLib/OpenJDK/OpenJDK.inc?rev=143132&r1=143131&r2=143132&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/ClassLib/OpenJDK/OpenJDK.inc (original)
+++ vmkit/trunk/lib/J3/ClassLib/OpenJDK/OpenJDK.inc Thu Oct 27 14:17:05 2011
@@ -1534,25 +1534,45 @@
NYI();
}
-typedef pthread_mutex_t Lock;
JNIEXPORT void * JNICALL
JVM_RawMonitorCreate(void) {
- NYI();
+ BEGIN_JNI_EXCEPTION
+ pthread_mutex_t* L = (pthread_mutex_t*)malloc(sizeof(pthread_mutex_t));
+ pthread_mutex_init(L, NULL);
+
+ RETURN_FROM_JNI(L);
+ END_JNI_EXCEPTION
+
+ return 0;
}
JNIEXPORT void JNICALL
JVM_RawMonitorDestroy(void *mon) {
- NYI();
+ BEGIN_JNI_EXCEPTION
+ pthread_mutex_t* L = (pthread_mutex_t*)mon;
+ pthread_mutex_destroy(L);
+ free(L);
+ RETURN_VOID_FROM_JNI;
+ END_JNI_EXCEPTION
}
JNIEXPORT jint JNICALL
JVM_RawMonitorEnter(void *mon) {
- NYI();
+ BEGIN_JNI_EXCEPTION
+ pthread_mutex_t* L = (pthread_mutex_t*)mon;
+ jint res = pthread_mutex_lock(L);
+ RETURN_FROM_JNI(res);
+ END_JNI_EXCEPTION
+ return 0;
}
JNIEXPORT void JNICALL
JVM_RawMonitorExit(void *mon) {
- NYI();
+ BEGIN_JNI_EXCEPTION
+ pthread_mutex_t* L = (pthread_mutex_t*)mon;
+ pthread_mutex_unlock(L);
+ RETURN_VOID_FROM_JNI;
+ END_JNI_EXCEPTION
}
/*
More information about the vmkit-commits
mailing list