< prev index next >
src/hotspot/share/runtime/synchronizer.hpp
Print this page
*** 63,88 ****
} InflateCause;
// exit must be implemented non-blocking, since the compiler cannot easily handle
// deoptimization at monitor exit. Hence, it does not take a Handle argument.
! // This is full version of monitor enter and exit. I choose not
! // to use enter() and exit() in order to make sure user be ware
! // of the performance and semantics difference. They are normally
! // used by ObjectLocker etc. The interpreter and compiler use
! // assembly copies of these routines. Please keep them synchronized.
! //
! // attempt_rebias flag is used by UseBiasedLocking implementation
! static void fast_enter(Handle obj, BasicLock* lock, bool attempt_rebias,
! TRAPS);
! static void fast_exit(oop obj, BasicLock* lock, Thread* THREAD);
!
! // WARNING: They are ONLY used to handle the slow cases. They should
! // only be used when the fast cases failed. Use of these functions
! // without previous fast case check may cause fatal error.
! static void slow_enter(Handle obj, BasicLock* lock, TRAPS);
! static void slow_exit(oop obj, BasicLock* lock, Thread* THREAD);
// Used only to handle jni locks or other unmatched monitor enter/exit
// Internally they will use heavy weight monitor.
static void jni_enter(Handle obj, TRAPS);
static void jni_exit(oop obj, Thread* THREAD);
--- 63,77 ----
} InflateCause;
// exit must be implemented non-blocking, since the compiler cannot easily handle
// deoptimization at monitor exit. Hence, it does not take a Handle argument.
! // This is full version of monitor enter and exit.
! // The interpreter and compiler use assembly copies of these routines.
! // Please keep them synchronized.
! static void enter(Handle obj, BasicLock* lock, TRAPS);
! static void exit(oop obj, BasicLock* lock, Thread* THREAD);
// Used only to handle jni locks or other unmatched monitor enter/exit
// Internally they will use heavy weight monitor.
static void jni_enter(Handle obj, TRAPS);
static void jni_exit(oop obj, Thread* THREAD);
< prev index next >