< prev index next >

src/hotspot/share/runtime/safepointMechanism.hpp

Print this page
rev 52432 : imported patch 8211403


  57   static void pd_initialize() NOT_AIX({ default_initialize(); });
  58 
  59   // By adding 8 to the base address of the protected polling page we can differentiate
  60   // between the armed and disarmed value by masking out this bit.
  61   const static intptr_t _poll_bit = 8;
  62 public:
  63   static intptr_t poll_bit() { return _poll_bit; }
  64 
  65   static bool uses_global_page_poll() { return _polling_type == _global_page_poll; }
  66   static bool uses_thread_local_poll() { return _polling_type == _thread_local_poll; }
  67 
  68   static bool supports_thread_local_poll() {
  69 #ifdef THREAD_LOCAL_POLL
  70     return true;
  71 #else
  72     return false;
  73 #endif
  74   }
  75 
  76   // Call this method to see if this thread has depending poll and appropriate action should be taken
  77   static inline bool poll(Thread* thread);
  78 
  79   // Blocks a thread until safepoint is completed
  80   static inline void block_if_requested(JavaThread* thread);
  81 
  82   // Caller is responsible for using a memory barrier if needed.
  83   static inline void arm_local_poll(JavaThread* thread);
  84   static inline void disarm_local_poll(JavaThread* thread);
  85 
  86   static inline void arm_local_poll_release(JavaThread* thread);
  87   static inline void disarm_local_poll_release(JavaThread* thread);
  88 
  89   // Setup the selected safepoint mechanism
  90   static void initialize();
  91   static void initialize_header(JavaThread* thread);
  92 };
  93 
  94 #endif // SHARE_VM_RUNTIME_SAFEPOINTMECHANISM_HPP


  57   static void pd_initialize() NOT_AIX({ default_initialize(); });
  58 
  59   // By adding 8 to the base address of the protected polling page we can differentiate
  60   // between the armed and disarmed value by masking out this bit.
  61   const static intptr_t _poll_bit = 8;
  62 public:
  63   static intptr_t poll_bit() { return _poll_bit; }
  64 
  65   static bool uses_global_page_poll() { return _polling_type == _global_page_poll; }
  66   static bool uses_thread_local_poll() { return _polling_type == _thread_local_poll; }
  67 
  68   static bool supports_thread_local_poll() {
  69 #ifdef THREAD_LOCAL_POLL
  70     return true;
  71 #else
  72     return false;
  73 #endif
  74   }
  75 
  76   // Call this method to see if this thread has depending poll and appropriate action should be taken
  77   static inline bool should_block(Thread* thread);
  78 
  79   // Blocks a thread until safepoint is completed
  80   static inline void block_if_requested(JavaThread* thread);
  81 
  82   // Caller is responsible for using a memory barrier if needed.
  83   static inline void arm_local_poll(JavaThread* thread);
  84   static inline void disarm_local_poll(JavaThread* thread);
  85 
  86   static inline void arm_local_poll_release(JavaThread* thread);
  87   static inline void disarm_local_poll_release(JavaThread* thread);
  88 
  89   // Setup the selected safepoint mechanism
  90   static void initialize();
  91   static void initialize_header(JavaThread* thread);
  92 };
  93 
  94 #endif // SHARE_VM_RUNTIME_SAFEPOINTMECHANISM_HPP
< prev index next >