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
--- a/hotspot/src/share/vm/runtime/synchronizer.cpp Wed Dec 10 15:14:29 2008 -0800
+++ b/hotspot/src/share/vm/runtime/synchronizer.cpp Thu Dec 11 03:22:04 2008 -0800
@@ -3363,13 +3363,13 @@
// If the wakee is cold then transiently setting it's affinity
// to the current CPU is a good idea.
// See http://j2se.east/~dice/PERSIST/050624-PullAffinity.txt
+ DTRACE_MONITOR_PROBE(contended__exit, this, object(), Self);
Trigger->unpark() ;
// Maintain stats and report events to JVMTI
if (ObjectSynchronizer::_sync_Parks != NULL) {
ObjectSynchronizer::_sync_Parks->inc() ;
}
- DTRACE_MONITOR_PROBE(contended__exit, this, object(), Self);
}