< prev index next >

src/hotspot/share/runtime/thread.hpp

Print this page
rev 53789 : 8234742: Improve handshake logging
Reviewed-by: dholmes, pchilanomate


1263   inline void set_polling_page_release(void* poll_value);
1264   inline void set_polling_page(void* poll_value);
1265   inline volatile void* get_polling_page();
1266 
1267  private:
1268   // Support for thread handshake operations
1269   HandshakeState _handshake;
1270  public:
1271   void set_handshake_operation(HandshakeOperation* op) {
1272     _handshake.set_operation(this, op);
1273   }
1274 
1275   bool has_handshake() const {
1276     return _handshake.has_operation();
1277   }
1278 
1279   void handshake_process_by_self() {
1280     _handshake.process_by_self(this);
1281   }
1282 
1283   HandshakeState::ProcessResult handshake_process_by_vmthread() {
1284     return _handshake.process_by_vmthread(this);
1285   }
1286 
1287   // Suspend/resume support for JavaThread
1288  private:
1289   inline void set_ext_suspended();
1290   inline void clear_ext_suspended();
1291 
1292  public:
1293   void java_suspend();
1294   void java_resume();
1295   int  java_suspend_self();
1296 
1297   void check_and_wait_while_suspended() {
1298     assert(JavaThread::current() == this, "sanity check");
1299 
1300     bool do_self_suspend;
1301     do {
1302       // were we externally suspended while we were waiting?
1303       do_self_suspend = handle_special_suspend_equivalent_condition();
1304       if (do_self_suspend) {




1263   inline void set_polling_page_release(void* poll_value);
1264   inline void set_polling_page(void* poll_value);
1265   inline volatile void* get_polling_page();
1266 
1267  private:
1268   // Support for thread handshake operations
1269   HandshakeState _handshake;
1270  public:
1271   void set_handshake_operation(HandshakeOperation* op) {
1272     _handshake.set_operation(this, op);
1273   }
1274 
1275   bool has_handshake() const {
1276     return _handshake.has_operation();
1277   }
1278 
1279   void handshake_process_by_self() {
1280     _handshake.process_by_self(this);
1281   }
1282 
1283   HandshakeState::ProcessResult handshake_try_process_by_vmThread(HandshakeOperation* op) {
1284     return _handshake.try_process_by_vmThread(this);
1285   }
1286 
1287   // Suspend/resume support for JavaThread
1288  private:
1289   inline void set_ext_suspended();
1290   inline void clear_ext_suspended();
1291 
1292  public:
1293   void java_suspend();
1294   void java_resume();
1295   int  java_suspend_self();
1296 
1297   void check_and_wait_while_suspended() {
1298     assert(JavaThread::current() == this, "sanity check");
1299 
1300     bool do_self_suspend;
1301     do {
1302       // were we externally suspended while we were waiting?
1303       do_self_suspend = handle_special_suspend_equivalent_condition();
1304       if (do_self_suspend) {


< prev index next >