Package com.cosylab.epics.caj.impl.sync
Class NamedLockPattern
- java.lang.Object
-
- com.cosylab.epics.caj.impl.sync.NamedLockPattern
-
public class NamedLockPattern extends Object
Named 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 }- Version:
- $id$
- Author:
- Matej Sekoranja
-
-
Constructor Summary
Constructors Constructor Description NamedLockPattern()Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanacquireSynchronizationObject(Object name, long msec)Acquire synchronization lock for named object.voidreleaseSynchronizationObject(Object name)Release synchronization lock for named object.voidreleaseSynchronizationObject(Object name, boolean release)Release synchronization lock for named object.
-
-
-
Method Detail
-
acquireSynchronizationObject
public boolean acquireSynchronizationObject(Object name, long msec)
Acquire synchronization lock for named object.- Parameters:
name- name of the object whose lock to acquire.msec- the number of milleseconds to wait. An argument less than or equal to zero means not to wait at all.- Returns:
trueif acquired,falseothwerwise.
-
releaseSynchronizationObject
public void releaseSynchronizationObject(Object name)
Release synchronization lock for named object.- Parameters:
name- name of the object whose lock to release.
-
releaseSynchronizationObject
public void releaseSynchronizationObject(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.
-
-