Package org.epics.pvaccess.util.sync
Class NamedLockPattern
- java.lang.Object
-
- org.epics.pvaccess.util.sync.NamedLockPattern
-
public final 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 boolean
acquireSynchronizationObject(Object name, long msec)
Acquire synchronization lock for named object.void
releaseSynchronizationObject(Object name)
Release synchronization lock for named object.void
releaseSynchronizationObject(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:
true
if acquired,false
othwerwise.
-
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 tofalse
if there is no need to call release on synchronization lock.
-
-