1249
1250 bool do_not_unlock_if_synchronized() { return _do_not_unlock_if_synchronized; }
1251 void set_do_not_unlock_if_synchronized(bool val) { _do_not_unlock_if_synchronized = val; }
1252
1253 inline void set_polling_page_release(void* poll_value);
1254 inline void set_polling_page(void* poll_value);
1255 inline volatile void* get_polling_page();
1256
1257 private:
1258 // Support for thread handshake operations
1259 HandshakeState _handshake;
1260 public:
1261 void set_handshake_operation(HandshakeOperation* op) {
1262 _handshake.set_operation(this, op);
1263 }
1264
1265 bool has_handshake() const {
1266 return _handshake.has_operation();
1267 }
1268
1269 void cancel_handshake() {
1270 _handshake.cancel(this);
1271 }
1272
1273 void handshake_process_by_self() {
1274 _handshake.process_by_self(this);
1275 }
1276
1277 void handshake_process_by_vmthread() {
1278 _handshake.process_by_vmthread(this);
1279 }
1280
1281 // Suspend/resume support for JavaThread
1282 private:
1283 inline void set_ext_suspended();
1284 inline void clear_ext_suspended();
1285
1286 public:
1287 void java_suspend();
1288 void java_resume();
1289 int java_suspend_self();
1290
1291 void check_and_wait_while_suspended() {
1292 assert(JavaThread::current() == this, "sanity check");
|
1249
1250 bool do_not_unlock_if_synchronized() { return _do_not_unlock_if_synchronized; }
1251 void set_do_not_unlock_if_synchronized(bool val) { _do_not_unlock_if_synchronized = val; }
1252
1253 inline void set_polling_page_release(void* poll_value);
1254 inline void set_polling_page(void* poll_value);
1255 inline volatile void* get_polling_page();
1256
1257 private:
1258 // Support for thread handshake operations
1259 HandshakeState _handshake;
1260 public:
1261 void set_handshake_operation(HandshakeOperation* op) {
1262 _handshake.set_operation(this, op);
1263 }
1264
1265 bool has_handshake() const {
1266 return _handshake.has_operation();
1267 }
1268
1269 void handshake_process_by_self() {
1270 _handshake.process_by_self(this);
1271 }
1272
1273 void handshake_process_by_vmthread() {
1274 _handshake.process_by_vmthread(this);
1275 }
1276
1277 // Suspend/resume support for JavaThread
1278 private:
1279 inline void set_ext_suspended();
1280 inline void clear_ext_suspended();
1281
1282 public:
1283 void java_suspend();
1284 void java_resume();
1285 int java_suspend_self();
1286
1287 void check_and_wait_while_suspended() {
1288 assert(JavaThread::current() == this, "sanity check");
|