< prev index next > src/hotspot/share/classfile/javaClasses.hpp
Print this page
static JavaThreadStatus get_thread_status(oop java_thread_oop);
static const char* thread_status_name(oop java_thread_oop);
// Fill in current stack trace, can cause GC
+ // If locks != nullptr, fill lock info
static oop async_get_stack_trace(oop java_thread, TRAPS);
+ static oop get_thread_snapshot(jobject jthread, bool with_locks, TRAPS);
JFR_ONLY(static u2 jfr_epoch(oop java_thread);)
JFR_ONLY(static void set_jfr_epoch(oop java_thread, u2 epoch);)
JFR_ONLY(static int jfr_epoch_offset() { CHECK_INIT(_jfr_epoch_offset); })
friend class JavaClasses;
};
// Interface to java.lang.VirtualThread objects
- #define VTHREAD_INJECTED_FIELDS(macro) \
- macro(java_lang_VirtualThread, objectWaiter, intptr_signature, false)
+ #define VTHREAD_INJECTED_FIELDS(macro) \
+ macro(java_lang_VirtualThread, objectWaiter, intptr_signature, false) \
class java_lang_VirtualThread : AllStatic {
private:
static int static_vthread_scope_offset;
static int _carrierThread_offset;
static int _continuation_offset;
static int _state_offset;
static int _next_offset;
static int _onWaitingList_offset;
static int _notified_offset;
+ static int _interruptible_wait_offset;
static int _recheckInterval_offset;
static int _timeout_offset;
static int _objectWaiter_offset;
JFR_ONLY(static int _jfr_epoch_offset;)
public:
static void set_next(oop vthread, oop next_vthread);
static bool set_onWaitingList(oop vthread, OopHandle& list_head);
static jlong timeout(oop vthread);
static void set_timeout(oop vthread, jlong value);
static void set_notified(oop vthread, jboolean value);
+ static void set_interruptible_wait(oop vthread, jboolean value);
static bool is_preempted(oop vthread);
static JavaThreadStatus map_state_to_thread_status(int state);
static inline ObjectWaiter* objectWaiter(oop vthread);
static inline void set_objectWaiter(oop vthread, ObjectWaiter* waiter);
< prev index next >