< prev index next >

src/hotspot/share/classfile/javaClasses.hpp

Print this page
*** 457,11 ***
--- 457,13 ---
    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); })
  

*** 542,22 ***
    friend class JavaClasses;
  };
  
  
  // Interface to java.lang.VirtualThread objects
! #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 _recheckInterval_offset;
    static int _timeout_offset;
    static int _objectWaiter_offset;
    JFR_ONLY(static int _jfr_epoch_offset;)
   public:
--- 544,23 ---
    friend class JavaClasses;
  };
  
  
  // Interface to java.lang.VirtualThread objects
! #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:

*** 606,10 ***
--- 609,11 ---
    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 >