org.eclipse.net4j.util.concurrent
Interface IRWLockManager<OBJECT,CONTEXT>
- All Known Subinterfaces:
- IRWOLockManager<OBJECT,CONTEXT>
- All Known Implementing Classes:
- RWLockManager, RWOLockManager
- public interface IRWLockManager<OBJECT,CONTEXT>
Support Multiple reads/no write and upgrade lock from read to write. Many context could request
write
lock at the same time. It will privileges first context that has already a
read
lock. If no one has any read lock, it's "first come first serve".
- Since:
- 3.0
Method Summary |
boolean |
hasLock(IRWLockManager.LockType type,
CONTEXT context,
OBJECT objectToLock)
|
boolean |
hasLockByOthers(IRWLockManager.LockType type,
CONTEXT context,
OBJECT objectToLock)
|
void |
lock(IRWLockManager.LockType type,
CONTEXT context,
Collection<? extends OBJECT> objectsToLock,
long timeout)
|
void |
lock(IRWLockManager.LockType type,
CONTEXT context,
OBJECT objectToLock,
long timeout)
|
void |
unlock(CONTEXT context)
Attempts to release all locks(read and write) for a given context. |
void |
unlock(IRWLockManager.LockType type,
CONTEXT context,
Collection<? extends OBJECT> objectsToUnlock)
Attempts to release for a given locktype, context and objects. |
WAIT
static final int WAIT
- See Also:
- Constant Field Values
NO_WAIT
static final int NO_WAIT
- See Also:
- Constant Field Values
lock
void lock(IRWLockManager.LockType type,
CONTEXT context,
Collection<? extends OBJECT> objectsToLock,
long timeout)
throws InterruptedException
- Throws:
InterruptedException
lock
void lock(IRWLockManager.LockType type,
CONTEXT context,
OBJECT objectToLock,
long timeout)
throws InterruptedException
- Throws:
InterruptedException
unlock
void unlock(IRWLockManager.LockType type,
CONTEXT context,
Collection<? extends OBJECT> objectsToUnlock)
- Attempts to release for a given locktype, context and objects.
- Throws:
IllegalMonitorStateException
- Unlocking objects without lock.
unlock
void unlock(CONTEXT context)
- Attempts to release all locks(read and write) for a given context.
hasLock
boolean hasLock(IRWLockManager.LockType type,
CONTEXT context,
OBJECT objectToLock)
hasLockByOthers
boolean hasLockByOthers(IRWLockManager.LockType type,
CONTEXT context,
OBJECT objectToLock)
Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.