hotspot/src/share/vm/prims/unsafe.cpp
changeset 5089 0cce506a0158
parent 3262 30d1c247fc25
child 5547 f4b087cbb361
equal deleted inserted replaced
5088:a7a4e66595ec 5089:0cce506a0158
    26  *      Implementation of class sun.misc.Unsafe
    26  *      Implementation of class sun.misc.Unsafe
    27  */
    27  */
    28 
    28 
    29 #include "incls/_precompiled.incl"
    29 #include "incls/_precompiled.incl"
    30 #include "incls/_unsafe.cpp.incl"
    30 #include "incls/_unsafe.cpp.incl"
       
    31 
       
    32 HS_DTRACE_PROBE_DECL3(hotspot, thread__park__begin, uintptr_t, int, long long);
       
    33 HS_DTRACE_PROBE_DECL1(hotspot, thread__park__end, uintptr_t);
       
    34 HS_DTRACE_PROBE_DECL1(hotspot, thread__unpark, uintptr_t);
    31 
    35 
    32 #define MAX_OBJECT_SIZE \
    36 #define MAX_OBJECT_SIZE \
    33   ( arrayOopDesc::header_size(T_DOUBLE) * HeapWordSize \
    37   ( arrayOopDesc::header_size(T_DOUBLE) * HeapWordSize \
    34     + ((julong)max_jint * sizeof(double)) )
    38     + ((julong)max_jint * sizeof(double)) )
    35 
    39 
  1081   }
  1085   }
  1082 UNSAFE_END
  1086 UNSAFE_END
  1083 
  1087 
  1084 UNSAFE_ENTRY(void, Unsafe_Park(JNIEnv *env, jobject unsafe, jboolean isAbsolute, jlong time))
  1088 UNSAFE_ENTRY(void, Unsafe_Park(JNIEnv *env, jobject unsafe, jboolean isAbsolute, jlong time))
  1085   UnsafeWrapper("Unsafe_Park");
  1089   UnsafeWrapper("Unsafe_Park");
       
  1090   HS_DTRACE_PROBE3(hotspot, thread__park__begin, thread->parker(), (int) isAbsolute, time);
  1086   JavaThreadParkedState jtps(thread, time != 0);
  1091   JavaThreadParkedState jtps(thread, time != 0);
  1087   thread->parker()->park(isAbsolute != 0, time);
  1092   thread->parker()->park(isAbsolute != 0, time);
       
  1093   HS_DTRACE_PROBE1(hotspot, thread__park__end, thread->parker());
  1088 UNSAFE_END
  1094 UNSAFE_END
  1089 
  1095 
  1090 UNSAFE_ENTRY(void, Unsafe_Unpark(JNIEnv *env, jobject unsafe, jobject jthread))
  1096 UNSAFE_ENTRY(void, Unsafe_Unpark(JNIEnv *env, jobject unsafe, jobject jthread))
  1091   UnsafeWrapper("Unsafe_Unpark");
  1097   UnsafeWrapper("Unsafe_Unpark");
  1092   Parker* p = NULL;
  1098   Parker* p = NULL;
  1114         }
  1120         }
  1115       }
  1121       }
  1116     }
  1122     }
  1117   }
  1123   }
  1118   if (p != NULL) {
  1124   if (p != NULL) {
       
  1125     HS_DTRACE_PROBE1(hotspot, thread__unpark, p);
  1119     p->unpark();
  1126     p->unpark();
  1120   }
  1127   }
  1121 UNSAFE_END
  1128 UNSAFE_END
  1122 
  1129 
  1123 UNSAFE_ENTRY(jint, Unsafe_Loadavg(JNIEnv *env, jobject unsafe, jdoubleArray loadavg, jint nelem))
  1130 UNSAFE_ENTRY(jint, Unsafe_Loadavg(JNIEnv *env, jobject unsafe, jdoubleArray loadavg, jint nelem))