| Constructor and Description |
|---|
LockImpl()
Create a Lock.
|
LockImpl(LockInfo firstOwner) |
| Modifier and Type | Method and Description |
|---|---|
void |
demote(Locker locker)
Downgrade a write lock to a read lock.
|
void |
flushWaiter(Locker locker,
MemoryBudget mb,
int lockTableIndex)
Remove this locker from the waiter list.
|
java.util.Set<LockInfo> |
getOwnersClone()
Get a new Set of the owners.
|
java.util.List<LockInfo> |
getWaitersListClone()
Get a list of waiters for debugging and error messages.
|
Locker |
getWriteOwnerLocker()
Return the locker that has a write ownership on this lock.
|
boolean |
isOwnedWriteLock(Locker locker)
Return true if locker is an owner of this Lock and this is a write
lock.
|
boolean |
isOwner(Locker locker,
LockType lockType)
Return true if locker is an owner of this Lock for lockType,
false otherwise.
|
boolean |
isThin() |
boolean |
isWaiter(Locker locker)
Return true if locker is a waiter on this Lock.
|
LockAttemptResult |
lock(LockType requestType,
Locker locker,
boolean nonBlockingRequest,
MemoryBudget mb,
int lockTableIndex)
Attempts to acquire the lock and returns the LockGrantType.
|
int |
nOwners() |
int |
nWaiters() |
java.util.Set<Locker> |
release(Locker locker,
MemoryBudget mb,
int lockTableIndex)
Releases a lock and moves the next waiter(s) to the owners.
|
java.lang.String |
toString()
Debug dumper.
|
Lock |
transfer(java.lang.Long nodeId,
Locker currentLocker,
Locker destLocker,
MemoryBudget mb,
int lockTableIndex)
Transfer a lock from one transaction to another.
|
Lock |
transferMultiple(java.lang.Long nodeId,
Locker currentLocker,
Locker[] destLockers,
MemoryBudget mb,
int lockTableIndex)
Transfer a lock from one transaction to many others.
|
public LockImpl()
LockImpl(LockInfo firstOwner)
public java.util.List<LockInfo> getWaitersListClone()
getWaitersListClone in interface Lockpublic void flushWaiter(Locker locker, MemoryBudget mb, int lockTableIndex)
flushWaiter in interface Lockpublic java.util.Set<LockInfo> getOwnersClone()
getOwnersClone in interface Lockpublic boolean isOwner(Locker locker, LockType lockType)
public boolean isOwnedWriteLock(Locker locker)
isOwnedWriteLock in interface Lockpublic boolean isWaiter(Locker locker)
public LockAttemptResult lock(LockType requestType, Locker locker, boolean nonBlockingRequest, MemoryBudget mb, int lockTableIndex)
public java.util.Set<Locker> release(Locker locker, MemoryBudget mb, int lockTableIndex)
public void demote(Locker locker)
public Lock transfer(java.lang.Long nodeId, Locker currentLocker, Locker destLocker, MemoryBudget mb, int lockTableIndex) throws DatabaseException
transfer in interface LockDatabaseExceptionpublic Lock transferMultiple(java.lang.Long nodeId, Locker currentLocker, Locker[] destLockers, MemoryBudget mb, int lockTableIndex) throws DatabaseException
transferMultiple in interface LockDatabaseExceptionpublic Locker getWriteOwnerLocker()
getWriteOwnerLocker in interface LockCopyright (c) 2004,2008 Oracle. All rights reserved.