|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.exist.storage.lock.ReentrantReadWriteLock
A lock with the same semantics as builtin Java synchronized locks: Once a thread has a lock, it can re-obtain it any number of times without blocking. The lock is made available to other threads when as many releases as acquires have occurred. The lock has a timeout: a read lock will be released if the timeout is reached.
| Field Summary | |
protected long |
holds_
|
protected java.lang.String |
id_
|
protected int |
mode_
|
protected java.lang.Thread |
owner_
|
| Fields inherited from interface org.exist.storage.lock.Lock |
NO_LOCK, READ_LOCK, WRITE_LOCK |
| Constructor Summary | |
ReentrantReadWriteLock(java.lang.String id)
|
|
| Method Summary | |
boolean |
acquire()
Acquire a lock for read. |
boolean |
acquire(int mode)
Acquire a lock for read or write. |
boolean |
attempt(int mode)
Attempt to acquire a lock for read or write. |
long |
holds()
Return the number of unreleased acquires performed by the current thread. |
boolean |
isLockedForWrite()
Returns true if there are active or pending write locks. |
void |
release()
Release the lock. |
void |
release(int mode)
Release a lock of the specified type. |
void |
release(long n)
Release the lock N times. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
protected java.lang.String id_
protected java.lang.Thread owner_
protected long holds_
protected int mode_
| Constructor Detail |
public ReentrantReadWriteLock(java.lang.String id)
| Method Detail |
public boolean acquire()
throws LockException
Lock
acquire in interface LockLockException
public boolean acquire(int mode)
throws LockException
LockLock.READ_LOCK or
Lock.WRITE_LOCK.
acquire in interface Lockmode -
LockExceptionpublic boolean attempt(int mode)
Lock
attempt in interface Lockmode -
public boolean isLockedForWrite()
Lock
isLockedForWrite in interface Lockpublic void release(int mode)
Lock
release in interface Lockmode - public void release()
release in interface Lockjava.lang.Error - thrown if not current owner of lockpublic void release(long n)
release(n) is
equivalent in effect to:
for (int i = 0; i < n; ++i) release();
java.lang.Error - thrown if not current owner of lock
or has fewer than N holds on the lockpublic long holds()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||