|
Hi David,
It looks good to me. A couple of nits below. http://cr.openjdk.java.net/~dholmes/8233549/webrev/src/hotspot/share/prims/jvmtiRawMonitor.cpp.frames.html 236 if (self->is_Java_thread()) { 237 JavaThread* jt = (JavaThread*) self; 238 // Transition to VM so we can check interrupt state 239 ThreadInVMfromNative tivm(jt); 240 if (jt->is_interrupted(true)) { 241 ret = M_INTERRUPTED; 242 } else { 243 ThreadBlockInVM tbivm(jt); 244 jt->set_suspend_equivalent(); 245 if (millis <= 0) { 246 self->_ParkEvent->park(); 247 } else { 248 self->_ParkEvent->park(millis); 249 } 250 } 251 // Return to VM before post-check of interrupt state 252 if (jt->is_interrupted(true)) { 253 ret = M_INTERRUPTED; 254 } 255 } else { It seems, the fragment at lines 251-254 needs to be before the line 250. It will add more clarity to this code. 412 if (self->is_Java_thread()) {
413 JavaThread* jt = (JavaThread*)self;
414 jt->set_suspend_equivalent();
415 for (;;) {
416 if (!jt->handle_special_suspend_equivalent_condition()) {
417 break;
418 } else {
419 // We've been suspended whilst waiting and so we have to
420 // relinquish the raw monitor until we are resumed. Of course
421 // after reacquiring we have to re-check for suspension again.
422 // Suspension requires we are _thread_blocked, and we also have to
423 // recheck for being interrupted.
424 simple_exit(jt);
425 {
426 ThreadInVMfromNative tivm(jt);
427 {
428 ThreadBlockInVM tbivm(jt);
429 jt->java_suspend_self();
430 }
431 if (jt->is_interrupted(true)) {
432 ret = M_INTERRUPTED;
433 }
434 }
435 simple_enter(jt);
436 jt->set_suspend_equivalent();
437 }
...This code can be simplified a little bit. The line: 414 jt->set_suspend_equivalent();
can be placed before line 416.Then this line can be removed: 436 jt->set_suspend_equivalent(); Thanks, Serguei On 11/11/19 20:52, David Holmes wrote: webrev: http://cr.openjdk.java.net/~dholmes/8233549/webrev/ |
- RFR: 8233549: Thread interrupted state must onl... David Holmes
- Re: RFR: 8233549: Thread interrupted state... Daniel D. Daugherty
- Re: RFR: 8233549: Thread interrupted s... David Holmes
- Re: RFR: 8233549: Thread interrupt... Daniel D. Daugherty
- Re: RFR: 8233549: Thread interrupted state... [email protected]
- Re: RFR: 8233549: Thread interrupted state... [email protected]
- Re: RFR: 8233549: Thread interrupted s... David Holmes
- Re: RFR: 8233549: Thread interrupt... Daniel D. Daugherty
- Re: RFR: 8233549: Thread inter... David Holmes
- Re: RFR: 8233549: Thread interrupt... serguei . spitsyn
- Re: RFR: 8233549: Thread inter... David Holmes
