提交 096b4c65 编写于 作者: B blacklion

6639341: sometimes contended-exit event comes after contended-entered on another thread

Summary: 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
上级 23d7deb6
...@@ -3363,13 +3363,13 @@ void ObjectMonitor::ExitEpilog (Thread * Self, ObjectWaiter * Wakee) { ...@@ -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);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册