java.lang.Object
org.apache.derby.impl.services.locks.Lock
org.apache.derby.impl.services.locks.ActiveLock
- All Implemented Interfaces:
- Control, org.apache.derby.iapi.services.locks.Latch
- public final class ActiveLock
- extends Lock
A Lock represents a granted or waiting lock request.
MT - Mutable - Immutable identity : Thread Aware
|
Field Summary |
protected boolean |
canSkip
If true then this lock can be granted even if
it is not the first lock request on the wait queue. |
(package private) boolean |
potentiallyGranted
Set to true if the Lock potentially could be granted. |
(package private) byte |
wakeUpNow
Set to true if the object waiting on this thread should wake up,
MT - mutable - java synchronized(this) |
| Fields inherited from class org.apache.derby.impl.services.locks.Lock |
count |
|
Method Summary |
protected void |
clearPotentiallyGranted()
Clear the potentially granted flag. |
protected boolean |
setPotentiallyGranted()
Set the potentially granted flag, returns true if the
flag changed its state. |
protected byte |
waitForGrant(int timeout)
Wait for a lock to be granted, returns when the lock is granted. |
protected void |
wakeUp(byte why)
Wake up anyone sleeping on this lock. |
| Methods inherited from class org.apache.derby.impl.services.locks.Lock |
addWaiters, copy, equals, firstWaiter, getCompatabilitySpace, getCount, getFirstGrant, getGranted, getLock, getLockable, getLockControl, getQualifier, getWaiting, grant, hashCode, isEmpty, isGrantable, shallowClone, unlock, unlock |
wakeUpNow
byte wakeUpNow
- Set to true if the object waiting on this thread should wake up,
MT - mutable - java synchronized(this)
potentiallyGranted
boolean potentiallyGranted
- Set to true if the Lock potentially could be granted.
MT - mutable - single thread required
canSkip
protected boolean canSkip
- If true then this lock can be granted even if
it is not the first lock request on the wait queue.
This can occur if the compatability space already holds
a lock on the object.
ActiveLock
protected ActiveLock(java.lang.Object space,
org.apache.derby.iapi.services.locks.Lockable ref,
java.lang.Object qualifier)
- Initialize the lock, should be seen as part of the constructor. A future
version of this class may become mutable - mutable identity.
MT - single thread required
setPotentiallyGranted
protected boolean setPotentiallyGranted()
- Set the potentially granted flag, returns true if the
flag changed its state.
MT - single thread required
clearPotentiallyGranted
protected void clearPotentiallyGranted()
- Clear the potentially granted flag.
MT - single thread required
waitForGrant
protected byte waitForGrant(int timeout)
throws org.apache.derby.iapi.error.StandardException
- Wait for a lock to be granted, returns when the lock is granted.
The sleep wakeup scheme depends on the two booleans wakeUpNow & potentiallyGranted.
MT - Single thread required - and assumed to be the thread requesting the lock.
wakeUp
protected void wakeUp(byte why)
- Wake up anyone sleeping on this lock.
MT - Thread Safe