On 3/03/2014 10:57 PM, David M. Lloyd wrote:
On 02/27/2014 06:38 AM, David Holmes wrote:
On 27/02/2014 9:12 PM, Stephen Colebourne wrote:
On 26 February 2014 20:54, Martin Buchholz <marti...@google.com> wrote:
It does seem that being able to tell whether a java object monitor is
currently locked is useful for debugging and monitoring - there
should be a
way to do that.

Perhaps it would be useful to be able to expose a java object monitor
as an instance of Lock?

Lock lk = Lock.ofMonitor(object)
if (lk.tryLock()) {
   ...
}

Such a method feels like it would be a useful missing link between
synchronized and locks.

I don't think this is workable. Exposing a monitor as Lock would allow
you to break the guarantees/requirements involving balanced-locking for
monitors.

The JNI APIs also allow this, do they not?

No:

http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html#wp5252

"Native code must not use MonitorExit to exit a monitor entered through a synchronized method or a monitorenter Java virtual machine instruction."

The above isn't enforced as with most JNI usage rules.

David
-----


Reply via email to