< prev index next >

src/hotspot/share/runtime/safepointMechanism.inline.hpp

Print this page




  49 
  50 bool SafepointMechanism::should_block(Thread* thread) {
  51   return local_poll(thread);
  52 }
  53 
  54 void SafepointMechanism::block_if_requested(JavaThread *thread) {
  55   if (!local_poll_armed(thread)) {
  56     return;
  57   }
  58   block_if_requested_slow(thread);
  59 }
  60 
  61 void SafepointMechanism::arm_local_poll(JavaThread* thread) {
  62   thread->set_polling_page(poll_armed_value());
  63 }
  64 
  65 void SafepointMechanism::disarm_local_poll(JavaThread* thread) {
  66   thread->set_polling_page(poll_disarmed_value());
  67 }
  68 
  69 void SafepointMechanism::disarm_if_needed(JavaThread* thread, bool memory_order_release) {
  70   JavaThreadState jts = thread->thread_state();
  71   if (jts == _thread_in_native || jts == _thread_in_native_trans) {
  72     // JavaThread will disarm itself and execute cross_modify_fence() before continuing
  73     return;
  74   }
  75   if (memory_order_release) {
  76     thread->set_polling_page_release(poll_disarmed_value());
  77   } else {
  78     thread->set_polling_page(poll_disarmed_value());
  79   }
  80 }
  81 
  82 void SafepointMechanism::arm_local_poll_release(JavaThread* thread) {
  83   thread->set_polling_page_release(poll_armed_value());
  84 }
  85 
  86 void SafepointMechanism::disarm_local_poll_release(JavaThread* thread) {
  87   thread->set_polling_page_release(poll_disarmed_value());
  88 }
  89 
  90 #endif // SHARE_RUNTIME_SAFEPOINTMECHANISM_INLINE_HPP


  49 
  50 bool SafepointMechanism::should_block(Thread* thread) {
  51   return local_poll(thread);
  52 }
  53 
  54 void SafepointMechanism::block_if_requested(JavaThread *thread) {
  55   if (!local_poll_armed(thread)) {
  56     return;
  57   }
  58   block_if_requested_slow(thread);
  59 }
  60 
  61 void SafepointMechanism::arm_local_poll(JavaThread* thread) {
  62   thread->set_polling_page(poll_armed_value());
  63 }
  64 
  65 void SafepointMechanism::disarm_local_poll(JavaThread* thread) {
  66   thread->set_polling_page(poll_disarmed_value());
  67 }
  68 













  69 void SafepointMechanism::arm_local_poll_release(JavaThread* thread) {
  70   thread->set_polling_page_release(poll_armed_value());
  71 }
  72 
  73 void SafepointMechanism::disarm_local_poll_release(JavaThread* thread) {
  74   thread->set_polling_page_release(poll_disarmed_value());
  75 }
  76 
  77 #endif // SHARE_RUNTIME_SAFEPOINTMECHANISM_INLINE_HPP
< prev index next >