EDU.oswego.cs.dl.util.concurrent
Class LockedExecutor

java.lang.Object
  extended by EDU.oswego.cs.dl.util.concurrent.LockedExecutor
All Implemented Interfaces:
Executor

public class LockedExecutor
extends java.lang.Object
implements Executor

An implementation of Executor that invokes the run method of the supplied command within a synchronization lock and then returns.

[ Introduction to this package. ]


Field Summary
protected  Sync mutex_
          The mutex
 
Constructor Summary
LockedExecutor(Sync mutex)
          Create a new LockedExecutor that relies on the given mutual exclusion lock.
 
Method Summary
 void execute(java.lang.Runnable command)
          Execute the given command directly in the current thread, within the supplied lock.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mutex_

protected final Sync mutex_
The mutex

Constructor Detail

LockedExecutor

public LockedExecutor(Sync mutex)
Create a new LockedExecutor that relies on the given mutual exclusion lock.

Parameters:
mutex - Any mutual exclusion lock. Standard usage is to supply an instance of Mutex, but, for example, a Semaphore initialized to 1 also works. On the other hand, many other Sync implementations would not work here, so some care is required to supply a sensible synchronization object.
Method Detail

execute

public void execute(java.lang.Runnable command)
             throws java.lang.InterruptedException
Execute the given command directly in the current thread, within the supplied lock.

Specified by:
execute in interface Executor
Throws:
java.lang.InterruptedException