6639341: sometimes contended-exit event comes after contended-entered on another thread
DTrace probe "contended-exit" should be fired before unparking object, or context could be lost. Probe firing was moved to proper place. Reviewed-by: coleenp, kamg
This commit is contained in:
parent
e0d2bfab81
commit
92ea783f35
@ -3363,13 +3363,13 @@ void ObjectMonitor::ExitEpilog (Thread * Self, ObjectWaiter * Wakee) {
|
|||||||
// If the wakee is cold then transiently setting it's affinity
|
// If the wakee is cold then transiently setting it's affinity
|
||||||
// to the current CPU is a good idea.
|
// to the current CPU is a good idea.
|
||||||
// See http://j2se.east/~dice/PERSIST/050624-PullAffinity.txt
|
// See http://j2se.east/~dice/PERSIST/050624-PullAffinity.txt
|
||||||
|
DTRACE_MONITOR_PROBE(contended__exit, this, object(), Self);
|
||||||
Trigger->unpark() ;
|
Trigger->unpark() ;
|
||||||
|
|
||||||
// Maintain stats and report events to JVMTI
|
// Maintain stats and report events to JVMTI
|
||||||
if (ObjectSynchronizer::_sync_Parks != NULL) {
|
if (ObjectSynchronizer::_sync_Parks != NULL) {
|
||||||
ObjectSynchronizer::_sync_Parks->inc() ;
|
ObjectSynchronizer::_sync_Parks->inc() ;
|
||||||
}
|
}
|
||||||
DTRACE_MONITOR_PROBE(contended__exit, this, object(), Self);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user