org.jtoolkit.essence.utils
Class RWLock
java.lang.Object
org.jtoolkit.essence.utils.RWLock
- All Implemented Interfaces:
- java.util.concurrent.locks.ReadWriteLock, Named
public class RWLock
- extends java.lang.Object
- implements java.util.concurrent.locks.ReadWriteLock, Named
A lock which can help you detect ReadWriteLock deadlocks and attempts to upgrade a lock.
It will log which threads have locked a lock if you are waiting for one too long.
It can also be used to ensure you have no locks when attempting a lengthy (blocking) operation.
Use RWLock.createLock() to create a normal lock or one of these reporting locks based on a system property
Add -Drwlock.debug=true to the commandline to turn on.
|
Constructor Summary |
RWLock(java.lang.String name)
|
|
Method Summary |
static void |
checkUnlocked(java.lang.String oper)
|
static java.util.concurrent.locks.ReadWriteLock |
createLock(java.lang.String name)
|
java.lang.String |
getName()
|
static boolean |
isDebug()
|
java.util.concurrent.locks.Lock |
readLock()
|
java.lang.String |
toString()
|
java.util.concurrent.locks.Lock |
writeLock()
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
RWLock
public RWLock(java.lang.String name)
getName
@NotNull
public java.lang.String getName()
- Specified by:
getName in interface Named
- Returns:
- A printable name.
isDebug
public static boolean isDebug()
readLock
public java.util.concurrent.locks.Lock readLock()
- Specified by:
readLock in interface java.util.concurrent.locks.ReadWriteLock
writeLock
public java.util.concurrent.locks.Lock writeLock()
- Specified by:
writeLock in interface java.util.concurrent.locks.ReadWriteLock
toString
public java.lang.String toString()
- Overrides:
toString in class java.lang.Object
checkUnlocked
public static void checkUnlocked(java.lang.String oper)
createLock
public static java.util.concurrent.locks.ReadWriteLock createLock(java.lang.String name)
Copyright © Peter Lawrey. All Rights Reserved.