Mercurial > hg > truffle
diff src/share/vm/prims/unsafe.cpp @ 14909:4ca6dc0799b6
Backout jdk9 merge
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Tue, 01 Apr 2014 13:57:07 +0200 |
parents | d8041d695d19 |
children | 52b4284cb496 |
line wrap: on
line diff
--- a/src/share/vm/prims/unsafe.cpp Tue Apr 01 14:09:03 2014 +0200 +++ b/src/share/vm/prims/unsafe.cpp Tue Apr 01 13:57:07 2014 +0200 @@ -44,6 +44,11 @@ * Implementation of class sun.misc.Unsafe */ +#ifndef USDT2 +HS_DTRACE_PROBE_DECL3(hotspot, thread__park__begin, uintptr_t, int, long long); +HS_DTRACE_PROBE_DECL1(hotspot, thread__park__end, uintptr_t); +HS_DTRACE_PROBE_DECL1(hotspot, thread__unpark, uintptr_t); +#endif /* !USDT2 */ #define MAX_OBJECT_SIZE \ ( arrayOopDesc::header_size(T_DOUBLE) * HeapWordSize \ @@ -157,9 +162,6 @@ #define GET_FIELD_VOLATILE(obj, offset, type_name, v) \ oop p = JNIHandles::resolve(obj); \ - if (support_IRIW_for_not_multiple_copy_atomic_cpu) { \ - OrderAccess::fence(); \ - } \ volatile type_name v = OrderAccess::load_acquire((volatile type_name*)index_oop_from_field_offset_long(p, offset)); #define SET_FIELD_VOLATILE(obj, offset, type_name, x) \ @@ -856,11 +858,6 @@ strcpy(buf, "java/lang/"); strcat(buf, ename); jclass cls = env->FindClass(buf); - if (env->ExceptionCheck()) { - env->ExceptionClear(); - tty->print_cr("Unsafe: cannot throw %s because FindClass has failed", buf); - return; - } char* msg = NULL; env->ThrowNew(cls, msg); } @@ -1209,12 +1206,20 @@ UNSAFE_ENTRY(void, Unsafe_Park(JNIEnv *env, jobject unsafe, jboolean isAbsolute, jlong time)) UnsafeWrapper("Unsafe_Park"); EventThreadPark event; - HOTSPOT_THREAD_PARK_BEGIN((uintptr_t) thread->parker(), (int) isAbsolute, time); - +#ifndef USDT2 + HS_DTRACE_PROBE3(hotspot, thread__park__begin, thread->parker(), (int) isAbsolute, time); +#else /* USDT2 */ + HOTSPOT_THREAD_PARK_BEGIN( + (uintptr_t) thread->parker(), (int) isAbsolute, time); +#endif /* USDT2 */ JavaThreadParkedState jtps(thread, time != 0); thread->parker()->park(isAbsolute != 0, time); - - HOTSPOT_THREAD_PARK_END((uintptr_t) thread->parker()); +#ifndef USDT2 + HS_DTRACE_PROBE1(hotspot, thread__park__end, thread->parker()); +#else /* USDT2 */ + HOTSPOT_THREAD_PARK_END( + (uintptr_t) thread->parker()); +#endif /* USDT2 */ if (event.should_commit()) { oop obj = thread->current_park_blocker(); event.set_klass((obj != NULL) ? obj->klass() : NULL); @@ -1253,7 +1258,12 @@ } } if (p != NULL) { - HOTSPOT_THREAD_UNPARK((uintptr_t) p); +#ifndef USDT2 + HS_DTRACE_PROBE1(hotspot, thread__unpark, p); +#else /* USDT2 */ + HOTSPOT_THREAD_UNPARK( + (uintptr_t) p); +#endif /* USDT2 */ p->unpark(); } UNSAFE_END