|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectde.grogra.util.LockableImpl
public class LockableImpl
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface de.grogra.util.Lockable |
|---|
Lockable.DeadLockException |
| Constructor Summary | |
|---|---|
LockableImpl()
|
|
| Method Summary | |
|---|---|
protected void |
enterWriteLock()
|
void |
execute(LockProtectedRunnable task,
boolean write)
Asynchronously executes a task such that it possesses
a lock on this Lockable. |
void |
execute(LockProtectedRunnable task,
Lock retained)
Asynchronously executes a task using a lock which
has been retained before within another task. |
void |
executeForcedly(LockProtectedRunnable task,
boolean write)
Synchronously executes a task such that it possesses
a lock on this Lockable. |
void |
executeForcedly(LockProtectedRunnable task,
Lock retained)
Synchronously executes a task using a lock which
has been retained before within another task. |
protected void |
executeInAllowedThread(java.lang.Runnable r)
|
long |
getMaxWaitingTime()
Returns the waiting time of the pending task which is waiting longest, or -1 if there is no pending task. |
int |
getQueueLength()
Returns the current number of tasks which are waiting for locked execution. |
protected void |
invokeRun(LockProtectedRunnable task,
boolean sync,
Lock lock)
|
protected boolean |
isAllowedThread(boolean write)
|
boolean |
isLocked(boolean write)
Determines if the current thread has a lock for this Lockable. |
protected void |
leaveWriteLock()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public LockableImpl()
| Method Detail |
|---|
protected void enterWriteLock()
public void execute(LockProtectedRunnable task,
boolean write)
Lockabletask such that it possesses
a lock on this Lockable. Note that the execution
is asynchronous, so that the thread in which
the task will actually be executed may differ from the current thread.
execute in interface Lockabletask - the task to executewrite - shall a write lock be obtained?
public void execute(LockProtectedRunnable task,
Lock retained)
Lockabletask using a lock which
has been retained before within another task.
Note that the execution
is asynchronous, so that the thread in which
the task will actually be executed may differ from the current thread.
execute in interface Lockabletask - the task to executeretained - the previously retained lockLock.retain()
public void executeForcedly(LockProtectedRunnable task,
boolean write)
throws java.lang.InterruptedException,
Lockable.DeadLockException
Lockabletask such that it possesses
a lock on this Lockable. The execution
is performed in the current thread.
executeForcedly in interface Lockabletask - the task to executewrite - shall a write lock be obtained?
java.lang.InterruptedException
Lockable.DeadLockException
public void executeForcedly(LockProtectedRunnable task,
Lock retained)
throws java.lang.InterruptedException
Lockabletask using a lock which
has been retained before within another task. The execution
is performed in the current thread.
executeForcedly in interface Lockabletask - the task to executeretained - the previously retained lock
java.lang.InterruptedExceptionLock.retain()protected void executeInAllowedThread(java.lang.Runnable r)
public long getMaxWaitingTime()
Lockable-1 if there is no pending task.
getMaxWaitingTime in interface Lockablepublic int getQueueLength()
Lockable
getQueueLength in interface Lockable
protected void invokeRun(LockProtectedRunnable task,
boolean sync,
Lock lock)
protected boolean isAllowedThread(boolean write)
public boolean isLocked(boolean write)
LockableLockable.
isLocked in interface Lockablewrite - check for write locks only (true)
or for both read and write locks (false)
true if the current thread has a lockprotected void leaveWriteLock()
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||