1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
   |  UNSAFE_ENTRY(void, Unsafe_Park(JNIEnv *env, jobject unsafe, jboolean isAbsolute, jlong time))   UnsafeWrapper("Unsafe_Park");   HS_DTRACE_PROBE3(hotspot, thread__park__begin, thread->parker(), (int) isAbsolute, time);   JavaThreadParkedState jtps(thread, time != 0);   thread->parker()->park(isAbsolute != 0, time);   HS_DTRACE_PROBE1(hotspot, thread__park__end, thread->parker()); UNSAFE_END
 
  UNSAFE_ENTRY(void, Unsafe_Unpark(JNIEnv *env, jobject unsafe, jobject jthread))   UnsafeWrapper("Unsafe_Unpark");   Parker* p = NULL;   if (jthread != NULL) {     oop java_thread = JNIHandles::resolve_non_null(jthread);     if (java_thread != NULL) {       jlong lp = java_lang_Thread::park_event(java_thread);       if (lp != 0) {                                    p = (Parker*)addr_from_java(lp);       } else {                  MutexLocker mu(Threads_lock);         java_thread = JNIHandles::resolve_non_null(jthread);         if (java_thread != NULL) {           JavaThread* thr = java_lang_Thread::thread(java_thread);           if (thr != NULL) {             p = thr->parker();             if (p != NULL) {                java_lang_Thread::set_park_event(java_thread, addr_to_java(p));             }           }         }       }     }   }   if (p != NULL) {     HS_DTRACE_PROBE1(hotspot, thread__unpark, p);     p->unpark();   } UNSAFE_END
 
  |