|
||||||||
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 |
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 |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public ReentrantReadWriteLock(java.lang.String id)
Method Detail |
public boolean acquire() throws LockException
Lock
acquire
in interface Lock
LockException
public boolean acquire(int mode) throws LockException
Lock
Lock.READ_LOCK
or
Lock.WRITE_LOCK
.
acquire
in interface Lock
mode
-
LockException
public boolean attempt(int mode)
Lock
attempt
in interface Lock
mode
- public boolean isLockedForWrite()
Lock
isLockedForWrite
in interface Lock
public void release(int mode)
Lock
release
in interface Lock
mode
- public void release()
release
in interface Lock
java.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 |