< prev index next > src/hotspot/share/runtime/synchronizer.hpp
Print this page
#include "memory/padded.hpp"
#include "oops/markWord.hpp"
#include "runtime/basicLock.hpp"
#include "runtime/handles.hpp"
+ #include "runtime/javaThread.hpp"
#include "utilities/resourceHash.hpp"
template <typename T> class GrowableArray;
class LogStream;
class ObjectMonitor;
// Used to inflate a monitor as if it was done from the thread JavaThread.
static ObjectMonitor* inflate_for(JavaThread* thread, oop obj, const InflateCause cause);
private:
// Shared implementation between the different LockingMode.
- static ObjectMonitor* inflate_impl(JavaThread* thread, oop obj, const InflateCause cause);
+ static ObjectMonitor* inflate_impl(oop obj, const InflateCause cause);
public:
// This version is only for internal use
static void inflate_helper(oop obj);
static const char* inflate_cause_name(const InflateCause cause);
+ static ObjectMonitor* read_monitor(markWord mark);
+ static ObjectMonitor* read_monitor(Thread* current, oop obj, markWord mark);
+
// Returns the identity hash value for an oop
// NOTE: It may cause monitor inflation
static intptr_t FastHashCode(Thread* current, oop obj);
// java.lang.Thread support
static void do_final_audit_and_print_stats();
static void log_in_use_monitor_details(outputStream* out, bool log_all);
private:
friend class SynchronizerTest;
+ friend class LightweightSynchronizer;
+
+ static intptr_t get_next_hash(Thread* current, oop obj);
static MonitorList _in_use_list;
static volatile bool _is_async_deflation_requested;
static volatile bool _is_final_audit;
static jlong _last_async_deflation_time_ns;
< prev index next >