Package hudson.model
Class ResourceController
- java.lang.Object
-
- hudson.model.ResourceController
-
- Direct Known Subclasses:
Queue
public class ResourceController extends Object
Controls mutual exclusion ofResourceList
.- Author:
- Kohsuke Kawaguchi
-
-
Constructor Summary
Constructors Constructor Description ResourceController()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
_await()
protected void
_signalAll()
protected <V,T extends Throwable>
V_withLock(hudson.remoting.Callable<V,T> callable)
protected void
_withLock(Runnable runnable)
protected <V> V
_withLock(Callable<V> callable)
boolean
canRun(ResourceList resources)
Checks if an activity that requires the given resource list can run immediately.void
execute(Runnable task, ResourceActivity activity)
Performs the task that requires the given list of resources.ResourceActivity
getBlockingActivity(ResourceActivity activity)
Of the activities that are in progress, return one that's blocking the given activity, or null if it's not blocked (and thus the given activity can be executed immediately.)Resource
getMissingResource(ResourceList resources)
Of the resource in the given resource list, return the one that's currently in use.
-
-
-
Method Detail
-
execute
public void execute(@NonNull Runnable task, ResourceActivity activity) throws InterruptedException
Performs the task that requires the given list of resources.The execution is blocked until the resource is available.
- Throws:
InterruptedException
- the thread can be interrupted while waiting for the available resources.
-
canRun
public boolean canRun(ResourceList resources)
Checks if an activity that requires the given resource list can run immediately.This method is really only useful as a hint, since another activity might acquire resources before the caller gets to call
execute(Runnable, ResourceActivity)
.
-
getMissingResource
public Resource getMissingResource(ResourceList resources)
Of the resource in the given resource list, return the one that's currently in use.If more than one such resource exists, one is chosen and returned. This method is used for reporting what's causing the blockage.
-
getBlockingActivity
public ResourceActivity getBlockingActivity(ResourceActivity activity)
Of the activities that are in progress, return one that's blocking the given activity, or null if it's not blocked (and thus the given activity can be executed immediately.)
-
_await
protected void _await() throws InterruptedException
- Throws:
InterruptedException
-
_signalAll
protected void _signalAll()
-
_withLock
protected void _withLock(Runnable runnable)
-
-