org.jtoolkit.essence.utils
Class RWLock

java.lang.Object
  extended by 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.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.jtoolkit.essence.utils.Named
Named.ContextSource<T>, Named.MapSource<T>, Named.Source<T>
 
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
 

Constructor Detail

RWLock

public RWLock(java.lang.String name)
Method Detail

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.