com.cosylab.epics.caj.impl.sync
Class NamedLockPattern

java.lang.Object
  extended by 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
NamedLockPattern()
          Default constructor.
 
Method Summary
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NamedLockPattern

public NamedLockPattern()
Default constructor.

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 to false if there is no need to call release on synchronization lock.


Copyright © 2004-2013 Cosylab. All Rights Reserved.