This one is a fix to the JVM TI "waiters" demo. When the VM terminates, the agent frees the Monitors on its list but some may already have been freed by the ObjectFree callback. The fix changes the ObjectFree callback so that it removes the Monitor from the agent's list. I also eliminated the raw monitor used in Agent::get_monitor - it's not needed because the raw monitor used for handling VMDeath events prevents any concurrent execution of the agent's callbacks. A production variant of this demo would likely use RWL, in which case the agent's callback would need locking around access to the monitor list.

The webrev is here:
 http://cr.openjdk.java.net/~alanb/6529758/webrev.00/

Thanks,
Alan.

Reply via email to