|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.derby.impl.services.locks.ConcurrentLockSet.Entry
private static final class ConcurrentLockSet.Entry
Class representing an entry in the lock table.
Field Summary | |
---|---|
(package private) Control |
control
The lock control. |
private java.util.concurrent.locks.Condition |
deadlockDetection
Condition variable which prevents calls to lock() from
locking the entry. |
private java.util.concurrent.locks.ReentrantLock |
mutex
Mutex used to ensure single-threaded access to the LockControls. |
Constructor Summary | |
---|---|
private |
ConcurrentLockSet.Entry()
|
Method Summary | |
---|---|
(package private) void |
enterDeadlockDetection()
Notify that the lock request that is currently accessing the entry will be entering deadlock detection. |
(package private) void |
exitDeadlockDetection()
Notify that the deadlock detection triggered by the current thread has finished. |
(package private) void |
lock()
Lock the entry, ensuring exclusive access to the contained Control object. |
(package private) void |
lockForDeadlockDetection()
Lock the entry while performing deadlock detection. |
(package private) void |
unlock()
Unlock the entry, allowing other threads to lock and access the contained Control object. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
Control control
private final java.util.concurrent.locks.ReentrantLock mutex
private java.util.concurrent.locks.Condition deadlockDetection
lock()
from
locking the entry. If it is not null
, only the thread
performing deadlock detection may lock the entry (by calling
lockForDeadlockDetection()
).
Constructor Detail |
---|
private ConcurrentLockSet.Entry()
Method Detail |
---|
void lock()
Control
object. The call will block until the entry can
be locked. If the entry is unlocked and
deadlockDetection
is not null
, the entry
belongs to a thread which waits for deadlock detection to be
initiated, and the call will block until that thread has finished
its deadlock detection.
void unlock()
Control
object.
void lockForDeadlockDetection()
deadlockDetection
is not
null
. If deadlockDetection
is not
null
, we know the entry and its Control
will not be accessed by others until we have finished the deadlock
detection, so it's OK for us to access it.
void enterDeadlockDetection()
void exitDeadlockDetection()
|
Built on Thu 2010-12-23 20:49:13+0000, from revision ??? | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |