src/hotspot/share/prims/jvmtiExport.hpp
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 54810 258170da6d3a
child 58679 9c3209ff7550
equal deleted inserted replaced
58677:13588c901957 58678:9cf78a70fa4f
    89   JVMTI_SUPPORT_FLAG(can_post_method_exit)
    89   JVMTI_SUPPORT_FLAG(can_post_method_exit)
    90   JVMTI_SUPPORT_FLAG(can_pop_frame)
    90   JVMTI_SUPPORT_FLAG(can_pop_frame)
    91   JVMTI_SUPPORT_FLAG(can_force_early_return)
    91   JVMTI_SUPPORT_FLAG(can_force_early_return)
    92 
    92 
    93   JVMTI_SUPPORT_FLAG(early_vmstart_recorded)
    93   JVMTI_SUPPORT_FLAG(early_vmstart_recorded)
       
    94   JVMTI_SUPPORT_FLAG(can_get_owned_monitor_info) // includes can_get_owned_monitor_stack_depth_info
    94 
    95 
    95   friend class JvmtiEventControllerPrivate;  // should only modify these flags
    96   friend class JvmtiEventControllerPrivate;  // should only modify these flags
    96   JVMTI_SUPPORT_FLAG(should_post_single_step)
    97   JVMTI_SUPPORT_FLAG(should_post_single_step)
    97   JVMTI_SUPPORT_FLAG(should_post_field_access)
    98   JVMTI_SUPPORT_FLAG(should_post_field_access)
    98   JVMTI_SUPPORT_FLAG(should_post_field_modification)
    99   JVMTI_SUPPORT_FLAG(should_post_field_modification)
   171 
   172 
   172   // This flag indicates whether RedefineClasses() has ever redefined
   173   // This flag indicates whether RedefineClasses() has ever redefined
   173   // one or more classes during the lifetime of the VM. The flag should
   174   // one or more classes during the lifetime of the VM. The flag should
   174   // only be set by the friend class and can be queried by other sub
   175   // only be set by the friend class and can be queried by other sub
   175   // systems as needed to relax invariant checks.
   176   // systems as needed to relax invariant checks.
   176   static bool _has_redefined_a_class;
   177   static uint64_t _redefinition_count;
   177   friend class VM_RedefineClasses;
   178   friend class VM_RedefineClasses;
   178   inline static void set_has_redefined_a_class() {
   179   inline static void increment_redefinition_count() {
   179     JVMTI_ONLY(_has_redefined_a_class = true;)
   180     JVMTI_ONLY(_redefinition_count++;)
   180   }
   181   }
   181   // Flag to indicate if the compiler has recorded all dependencies. When the
   182   // Flag to indicate if the compiler has recorded all dependencies. When the
   182   // can_redefine_classes capability is enabled in the OnLoad phase then the compiler
   183   // can_redefine_classes capability is enabled in the OnLoad phase then the compiler
   183   // records all dependencies from startup. However if the capability is first
   184   // records all dependencies from startup. However if the capability is first
   184   // enabled some time later then the dependencies recorded by the compiler
   185   // enabled some time later then the dependencies recorded by the compiler
   186   // dependency information is complete or not.
   187   // dependency information is complete or not.
   187   static bool _all_dependencies_are_recorded;
   188   static bool _all_dependencies_are_recorded;
   188 
   189 
   189  public:
   190  public:
   190   inline static bool has_redefined_a_class() {
   191   inline static bool has_redefined_a_class() {
   191     JVMTI_ONLY(return _has_redefined_a_class);
   192     JVMTI_ONLY(return _redefinition_count != 0);
   192     NOT_JVMTI(return false);
   193     NOT_JVMTI(return false);
       
   194   }
       
   195 
       
   196   // Only set in safepoint, so no memory ordering needed.
       
   197   inline static uint64_t redefinition_count() {
       
   198     JVMTI_ONLY(return _redefinition_count);
       
   199     NOT_JVMTI(return 0);
   193   }
   200   }
   194 
   201 
   195   inline static bool all_dependencies_are_recorded() {
   202   inline static bool all_dependencies_are_recorded() {
   196     return _all_dependencies_are_recorded;
   203     return _all_dependencies_are_recorded;
   197   }
   204   }
   386   static void cleanup_thread             (JavaThread* thread) NOT_JVMTI_RETURN;
   393   static void cleanup_thread             (JavaThread* thread) NOT_JVMTI_RETURN;
   387   static void clear_detected_exception   (JavaThread* thread) NOT_JVMTI_RETURN;
   394   static void clear_detected_exception   (JavaThread* thread) NOT_JVMTI_RETURN;
   388 
   395 
   389   static void oops_do(OopClosure* f) NOT_JVMTI_RETURN;
   396   static void oops_do(OopClosure* f) NOT_JVMTI_RETURN;
   390   static void weak_oops_do(BoolObjectClosure* b, OopClosure* f) NOT_JVMTI_RETURN;
   397   static void weak_oops_do(BoolObjectClosure* b, OopClosure* f) NOT_JVMTI_RETURN;
   391   static void gc_epilogue() NOT_JVMTI_RETURN;
       
   392 
   398 
   393   static void transition_pending_onload_raw_monitors() NOT_JVMTI_RETURN;
   399   static void transition_pending_onload_raw_monitors() NOT_JVMTI_RETURN;
   394 
   400 
   395 #if INCLUDE_SERVICES
   401 #if INCLUDE_SERVICES
   396   // attach support
   402   // attach support