Package hudson.util
Class SequentialExecutionQueue
- java.lang.Object
-
- hudson.util.SequentialExecutionQueue
-
- All Implemented Interfaces:
Executor
public class SequentialExecutionQueue extends Object implements Executor
Executor
that collapses two equalRunnable
s into one, and makes sure no two equalRunnable
s get executed simultaneously.That is, if a
Runnable
is executing and another one gets submitted, the 2nd one waits for the completion of the 1st one.Object.equals(Object)
is used onRunnable
to identify two equalRunnable
s.- Author:
- Kohsuke Kawaguchi
-
-
Constructor Summary
Constructors Constructor Description SequentialExecutionQueue(ExecutorService executors)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
execute(Runnable item)
ExecutorService
getExecutors()
Gets the base underlying executors.,Set<Runnable>
getInProgress()
GetsRunnable
s that are currently executed by a live thread.boolean
isStarving(long threshold)
Returns true if too much time is spent since someRunnable
is submitted into the queue until they get executed.void
setExecutors(ExecutorService svc)
Starts using a newExecutorService
to carry out executions.
-
-
-
Constructor Detail
-
SequentialExecutionQueue
public SequentialExecutionQueue(ExecutorService executors)
-
-
Method Detail
-
getExecutors
public ExecutorService getExecutors()
Gets the base underlying executors.,
-
setExecutors
public void setExecutors(ExecutorService svc)
Starts using a newExecutorService
to carry out executions.The older
ExecutorService
will be shut down (but it's still expected to complete whatever they are doing and scheduled.)
-
isStarving
public boolean isStarving(long threshold)
Returns true if too much time is spent since someRunnable
is submitted into the queue until they get executed.
-
-