java.lang.Object
java.util.Dictionary
java.util.Hashtable
org.apache.derby.impl.services.locks.LockSpace
- All Implemented Interfaces:
- java.lang.Cloneable, java.util.Map, java.io.Serializable
- class LockSpace
- extends java.util.Hashtable
A LockSpace represents the complete set of locks held within
a single compatability space, broken into groups of locks.
A LockSpace is a hashtable keyed by the group reference,
the data for each key is a Hashtable of Lock's.
| Nested classes inherited from class java.util.Hashtable |
|
| Nested classes inherited from class java.util.Map |
java.util.Map.Entry |
| Fields inherited from class java.util.Hashtable |
|
|
Method Summary |
protected void |
addLock(java.lang.Object group,
Lock lock)
Add a lock to a group. |
(package private) boolean |
areLocksHeld(java.lang.Object group)
Return true if locks are held in a group |
(package private) void |
clearLimit(java.lang.Object group)
Clear a limit set by setLimit. |
(package private) int |
deadlockCount(int bail)
Return a count of the number of locks
held by this space. |
private java.util.HashMap |
getGroupMap(java.lang.Object group)
|
(package private) boolean |
isLockHeld(java.lang.Object group,
org.apache.derby.iapi.services.locks.Lockable ref,
java.lang.Object qualifier)
|
private void |
mergeGroups(java.util.HashMap from,
java.util.HashMap into)
|
private void |
saveGroup(java.util.HashMap dl)
|
(package private) void |
setLimit(java.lang.Object group,
int limit,
org.apache.derby.iapi.services.locks.Limit callback)
|
(package private) void |
transfer(java.lang.Object oldGroup,
java.lang.Object newGroup)
|
(package private) void |
unlockGroup(LockSet lset,
java.lang.Object group)
Unlock all the locks in a group and then remove the group. |
(package private) void |
unlockGroup(LockSet lset,
java.lang.Object group,
org.apache.derby.iapi.util.Matchable key)
Unlock all locks in the group that match the key |
(package private) int |
unlockReference(LockSet lset,
org.apache.derby.iapi.services.locks.Lockable ref,
java.lang.Object qualifier,
java.lang.Object group)
|
| Methods inherited from class java.util.Hashtable |
clear, clone, contains, containsKey, containsValue, elements, entrySet, equals, get, hashCode, isEmpty, keys, keySet, put, putAll, rehash, remove, size, toString, values |
compatSpace
private final java.lang.Object compatSpace
holder
private final java.util.Dictionary holder
spareGroups
private java.util.HashMap[] spareGroups
callbackGroup
private java.lang.Object callbackGroup
limit
private int limit
nextLimitCall
private int nextLimitCall
callback
private org.apache.derby.iapi.services.locks.Limit callback
inLimit
private boolean inLimit
LockSpace
LockSpace(java.util.Dictionary holder,
java.lang.Object compatSpace)
addLock
protected void addLock(java.lang.Object group,
Lock lock)
throws org.apache.derby.iapi.error.StandardException
- Add a lock to a group.
unlockGroup
void unlockGroup(LockSet lset,
java.lang.Object group)
- Unlock all the locks in a group and then remove the group.
getGroupMap
private java.util.HashMap getGroupMap(java.lang.Object group)
saveGroup
private void saveGroup(java.util.HashMap dl)
unlockGroup
void unlockGroup(LockSet lset,
java.lang.Object group,
org.apache.derby.iapi.util.Matchable key)
- Unlock all locks in the group that match the key
transfer
void transfer(java.lang.Object oldGroup,
java.lang.Object newGroup)
mergeGroups
private void mergeGroups(java.util.HashMap from,
java.util.HashMap into)
unlockReference
int unlockReference(LockSet lset,
org.apache.derby.iapi.services.locks.Lockable ref,
java.lang.Object qualifier,
java.lang.Object group)
areLocksHeld
boolean areLocksHeld(java.lang.Object group)
- Return true if locks are held in a group
isLockHeld
boolean isLockHeld(java.lang.Object group,
org.apache.derby.iapi.services.locks.Lockable ref,
java.lang.Object qualifier)
setLimit
void setLimit(java.lang.Object group,
int limit,
org.apache.derby.iapi.services.locks.Limit callback)
clearLimit
void clearLimit(java.lang.Object group)
- Clear a limit set by setLimit.
deadlockCount
int deadlockCount(int bail)
- Return a count of the number of locks
held by this space. The argument bail
indicates at which point the counting
should bail out and return the current
count. This routine will bail if the
count is greater than bail. Thus this
routine is intended to for deadlock
code to find the space with the
fewest number of locks.