49 {"setPriority0", "(I)V", (void *)&JVM_SetThreadPriority}, |
49 {"setPriority0", "(I)V", (void *)&JVM_SetThreadPriority}, |
50 {"yield", "()V", (void *)&JVM_Yield}, |
50 {"yield", "()V", (void *)&JVM_Yield}, |
51 {"sleep", "(J)V", (void *)&JVM_Sleep}, |
51 {"sleep", "(J)V", (void *)&JVM_Sleep}, |
52 {"currentThread", "()" THD, (void *)&JVM_CurrentThread}, |
52 {"currentThread", "()" THD, (void *)&JVM_CurrentThread}, |
53 {"interrupt0", "()V", (void *)&JVM_Interrupt}, |
53 {"interrupt0", "()V", (void *)&JVM_Interrupt}, |
54 {"isInterrupted", "(Z)Z", (void *)&JVM_IsInterrupted}, |
|
55 {"holdsLock", "(" OBJ ")Z", (void *)&JVM_HoldsLock}, |
54 {"holdsLock", "(" OBJ ")Z", (void *)&JVM_HoldsLock}, |
56 {"getThreads", "()[" THD, (void *)&JVM_GetAllThreads}, |
55 {"getThreads", "()[" THD, (void *)&JVM_GetAllThreads}, |
57 {"dumpThreads", "([" THD ")[[" STE, (void *)&JVM_DumpThreads}, |
56 {"dumpThreads", "([" THD ")[[" STE, (void *)&JVM_DumpThreads}, |
58 {"setNativeName", "(" STR ")V", (void *)&JVM_SetNativeThreadName}, |
57 {"setNativeName", "(" STR ")V", (void *)&JVM_SetNativeThreadName}, |
59 }; |
58 }; |
66 JNIEXPORT void JNICALL |
65 JNIEXPORT void JNICALL |
67 Java_java_lang_Thread_registerNatives(JNIEnv *env, jclass cls) |
66 Java_java_lang_Thread_registerNatives(JNIEnv *env, jclass cls) |
68 { |
67 { |
69 (*env)->RegisterNatives(env, cls, methods, ARRAY_LENGTH(methods)); |
68 (*env)->RegisterNatives(env, cls, methods, ARRAY_LENGTH(methods)); |
70 } |
69 } |
|
70 |
|
71 JNIEXPORT void JNICALL |
|
72 Java_java_lang_Thread_clearInterruptEvent(JNIEnv *env, jclass cls) |
|
73 { |
|
74 #if defined(_WIN32) |
|
75 // Need to reset the interrupt event used by Process.waitFor |
|
76 ResetEvent((HANDLE) JVM_GetThreadInterruptEvent()); |
|
77 #endif |
|
78 } |