Duplicate :
|
|
Relates :
|
|
Relates :
|
During nightly results analysis following problem was found: since b92 execution of ThreadReference.ownedMonitors() and ThreadReference.ownedMonitorsAndFrames() take 6sec if thread for which this methods are called sleepeng (with previous builds this method take several ms). Attached test case demonstrates this, debuggee starts 2 threads, one of this threads calls sleep(Long.MAX_VALUE) another one executes infinite loop. Test output for b92: Time for SleepengThread ownedMonitors: Time: 6s (6668ms) ownedMonitorsAndFrames: Time: 6s (6668ms) Time for LoopThread ownedMonitors: Time: 0s (1ms) ownedMonitorsAndFrames: Time: 0s (1ms) debuggee out>>>Command received: QUIT debuggee out>>>Exit Test output for b91: Time for SleepengThread ownedMonitors: Time: 0s (1ms) ownedMonitorsAndFrames: Time: 0s (1ms) Time for LoopThread ownedMonitors: Time: 0s (0ms) ownedMonitorsAndFrames: Time: 0s (0ms) debuggee out>>>Command received: QUIT debuggee out>>>Exit Also I couldn't reproduce this problem just calling JVMTI functions 'GetOwnedMonitorStackDepthInfo' and 'GetOwnedMonitorInfo'.
|