Package org.epics.ca.util.sync
Class NamedLockPattern
- java.lang.Object
-
- org.epics.ca.util.sync.NamedLockPattern
-
public final class NamedLockPattern extends java.lang.ObjectNamed lock implementation (I named it "Named-lock pattern").// try to acquire named lock boolean lockAcquired = namedLocker.acquireSynchronizationObject(namedObject, getLockTimeout()); if (lockAcquired) { try { // ... so sth here } finally { namedLocker.releaseSynchronizationObject(name); } } else { // .. failed to obtain synchronization lock for component 'namedObject', possible deadlock }
-
-
Constructor Summary
Constructors Constructor Description NamedLockPattern()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanacquireSynchronizationObject(java.lang.Object name, long msec)Acquire synchronization lock for named object.voidreleaseSynchronizationObject(java.lang.Object name)Release synchronization lock for named object.voidreleaseSynchronizationObject(java.lang.Object name, boolean release)Release synchronization lock for named object.
-
-
-
Method Detail
-
acquireSynchronizationObject
public boolean acquireSynchronizationObject(java.lang.Object name, long msec)Acquire synchronization lock for named object.- Parameters:
name- name of the object whose lock to acquire.msec- the number of milliseconds to wait. An argument less than or equal to zero means not to wait at all.- Returns:
trueif acquired,falseotherwise.
-
releaseSynchronizationObject
public void releaseSynchronizationObject(java.lang.Object name)
Release synchronization lock for named object.- Parameters:
name- name of the object whose lock to release.
-
releaseSynchronizationObject
public void releaseSynchronizationObject(java.lang.Object name, boolean release)Release synchronization lock for named object.- Parameters:
name- name of the object whose lock to release.release- set tofalseif there is no need to call release on synchronization lock.
-
-