Mercurial > hg > truffle
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 // ~~~~~~ |