comparison src/share/vm/runtime/synchronizer.cpp @ 478:a7fac4381b50

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
author blacklion
date Thu, 11 Dec 2008 03:22:04 -0800
parents a61af66fc99e
children 2328d1d3f8cf
comparison
equal deleted inserted replaced
477:24fda36852ce 478:a7fac4381b50
3361 // 3361 //
3362 // * Pull affinity: 3362 // * Pull affinity:
3363 // If the wakee is cold then transiently setting it's affinity 3363 // If the wakee is cold then transiently setting it's affinity
3364 // to the current CPU is a good idea. 3364 // to the current CPU is a good idea.
3365 // See http://j2se.east/~dice/PERSIST/050624-PullAffinity.txt 3365 // See http://j2se.east/~dice/PERSIST/050624-PullAffinity.txt
3366 DTRACE_MONITOR_PROBE(contended__exit, this, object(), Self);
3366 Trigger->unpark() ; 3367 Trigger->unpark() ;
3367 3368
3368 // Maintain stats and report events to JVMTI 3369 // Maintain stats and report events to JVMTI
3369 if (ObjectSynchronizer::_sync_Parks != NULL) { 3370 if (ObjectSynchronizer::_sync_Parks != NULL) {
3370 ObjectSynchronizer::_sync_Parks->inc() ; 3371 ObjectSynchronizer::_sync_Parks->inc() ;
3371 } 3372 }
3372 DTRACE_MONITOR_PROBE(contended__exit, this, object(), Self);
3373 } 3373 }
3374 3374
3375 3375
3376 // exit() 3376 // exit()
3377 // ~~~~~~ 3377 // ~~~~~~