|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.derby.impl.services.locks.LockSpace
final class LockSpace
A LockSpace represents the complete set of locks held within a single compatibility space, broken into groups of locks. A LockSpace contains a HashMap keyed by the group reference, the data for each key is a HashMap of Lock's.
A LockSpace
can have an owner (for instance a
transaction). Currently, the owner is used by the virtual lock table to
find out which transaction a lock belongs to. Some parts of the code also
use the owner as a group object which guarantees that the lock is released
on a commit or an abort. The owner has no special meaning to the lock
manager and can be any object, including null
.
Field Summary | |
---|---|
private Limit |
callback
|
private java.lang.Object |
callbackGroup
|
private java.util.HashMap |
groups
Map from group references to groups of locks. |
private boolean |
inLimit
|
private int |
limit
|
private int |
nextLimitCall
|
private LockOwner |
owner
Reference to the owner of this compatibility space. |
private java.util.HashMap[] |
spareGroups
|
Constructor Summary | |
---|---|
LockSpace(LockOwner owner)
Creates a new LockSpace instance. |
Method Summary | |
---|---|
protected void |
addLock(java.lang.Object group,
Lock lock)
Add a lock to a group. |
(package private) boolean |
areLocksHeld()
Return true if locks are held in this compatibility space. |
(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)
|
LockOwner |
getOwner()
Get the object representing the owner of the compatibility space. |
(package private) boolean |
isLockHeld(java.lang.Object group,
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,
Limit callback)
|
(package private) void |
transfer(java.lang.Object oldGroup,
java.lang.Object newGroup)
|
(package private) void |
unlockGroup(LockTable lset,
java.lang.Object group)
Unlock all the locks in a group and then remove the group. |
(package private) void |
unlockGroup(LockTable lset,
java.lang.Object group,
Matchable key)
Unlock all locks in the group that match the key |
(package private) int |
unlockReference(LockTable lset,
Lockable ref,
java.lang.Object qualifier,
java.lang.Object group)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private final java.util.HashMap groups
private final LockOwner owner
private java.util.HashMap[] spareGroups
private java.lang.Object callbackGroup
private int limit
private int nextLimitCall
private Limit callback
private boolean inLimit
Constructor Detail |
---|
LockSpace(LockOwner owner)
LockSpace
instance.
owner
- an object representing the owner of the compatibility spaceMethod Detail |
---|
public LockOwner getOwner()
getOwner
in interface CompatibilitySpace
protected void addLock(java.lang.Object group, Lock lock) throws StandardException
StandardException
void unlockGroup(LockTable lset, java.lang.Object group)
private java.util.HashMap getGroupMap(java.lang.Object group)
private void saveGroup(java.util.HashMap dl)
void unlockGroup(LockTable lset, java.lang.Object group, Matchable key)
void transfer(java.lang.Object oldGroup, java.lang.Object newGroup)
private void mergeGroups(java.util.HashMap from, java.util.HashMap into)
int unlockReference(LockTable lset, Lockable ref, java.lang.Object qualifier, java.lang.Object group)
boolean areLocksHeld(java.lang.Object group)
boolean areLocksHeld()
boolean isLockHeld(java.lang.Object group, Lockable ref, java.lang.Object qualifier)
void setLimit(java.lang.Object group, int limit, Limit callback)
void clearLimit(java.lang.Object group)
int deadlockCount(int bail)
|
Built on Thu 2011-03-10 11:54:14+0000, from revision ??? | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |