public class ShExLockable extends java.lang.Object implements Lockable
Constructor and Description |
---|
ShExLockable() |
Modifier and Type | Method and Description |
---|---|
boolean |
lockAttributes(int flag,
java.util.Hashtable<java.lang.String,java.lang.Object> attributes)
This lockable want to participate in the Virtual LockTable
when we want to print LATCH information.
|
boolean |
lockerAlwaysCompatible()
Returns true if any lock request on a Lockable L in a compatibility space CS1 is compatible
with any other lock held on L in CS1.
|
void |
lockEvent(Latch lockInfo)
Note the fact the object is locked.
|
boolean |
requestCompatible(java.lang.Object requestedQualifier,
java.lang.Object grantedQualifier)
Return true if the requested qualifier is compatible with the already granted
qualifier.
|
void |
unlockEvent(Latch lockInfo)
Note that the object has been unlocked
Must only be called by the lock manager.
|
public boolean lockerAlwaysCompatible()
Lockable
lockerAlwaysCompatible
in interface Lockable
Lockable.lockerAlwaysCompatible()
public boolean requestCompatible(java.lang.Object requestedQualifier, java.lang.Object grantedQualifier)
Lockable
requestCompatible
in interface Lockable
Lockable.requestCompatible(java.lang.Object, java.lang.Object)
public void lockEvent(Latch lockInfo)
Lockable
If the class supports multiple lockers of the object then this method will be called once per locker, each with their own qualifier.
Must only be called by the lock manager. Synchronization will be handled by the lock manager.
lockEvent
in interface Lockable
Lockable.lockEvent(org.apache.derby.iapi.services.locks.Latch)
public void unlockEvent(Latch lockInfo)
Lockable
Must only be called by the lock manager. Synchronization will be handled by the lock manager.
unlockEvent
in interface Lockable
Lockable.unlockEvent(org.apache.derby.iapi.services.locks.Latch)
public boolean lockAttributes(int flag, java.util.Hashtable<java.lang.String,java.lang.Object> attributes)
lockAttributes
in interface Lockable
flag
- use the bits in this int to decide if the user is
interested in this kind of lockable object. The bits are defined in
VirtualLockTable. For instance, the user may only ask
for TABLE_AND_ROWLOCK and if this is not a table or row lock, then
don't participate.attributes
- if this decides to participate, put all relevant
attributes into the Hashtable. The complete list of interesting
attributes is listed in VirtualLockTable.
The following attributes must be present for all participating
lockables:
VirtualLockTable.LOCKNAME,
VirtualLockTable.LOCKTYPE,
either VirtualLockTable.CONTAINERID or VirtualLockTable.CONGLOMID,
MT - this routine must be MP safe, caller will not be single threading the lock manager.
VirtualLockTable
Apache Derby V10.13 Internals - Copyright © 2004,2016 The Apache Software Foundation. All Rights Reserved.