Top Description Fields Constructors Methods
org.testng.internal.thread.graph

public Class GraphOrchestrator<T>

extends Object
Class Inheritance
Imports
java.util.Comparator, .List, .Map, java.util.concurrent.*, org.testng.IDynamicGraph, org.testng.collections.Maps, org.testng.internal.AutoCloseableLock, .RuntimeBehavior, org.testng.log4testng.Logger, org.testng.thread.IThreadWorkerFactory, .IWorker

An orchestrator that works with a IDynamicGraph graph to execute nodes from the DAG in an concurrent fashion by using a ThreadPoolExecutor

Field Summary

Modifier and TypeField and Description
private final Comparator<T>
private final IThreadWorkerFactory<T>
private final IDynamicGraph<T>
private final AutoCloseableLock
private final Map<T, IWorker<T>>
private final ExecutorService
private final Map<T, T>

Constructor Summary

AccessConstructor and Description
public
GraphOrchestrator(ExecutorService service, IThreadWorkerFactory<T> factory, IDynamicGraph<T> graph, Comparator<T> comparator)

Method Summary

Modifier and TypeMethod and Description
private void
private IDynamicGraph.Status
private void
handleThreadAffinity(List<T> freeNodes)

private void
mapNodeToParent(List<T> freeNodes)

private void
mapNodeToWorker(List<IWorker<T>> runnables, List<T> freeNodes)

public void
run()

private void
runNodes(List<T> freeNodes)

private void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

comparatorback to summary
private final Comparator<T> comparator
factoryback to summary
private final IThreadWorkerFactory<T> factory
graphback to summary
private final IDynamicGraph<T> graph
internalLockback to summary
private final AutoCloseableLock internalLock
mappingback to summary
private final Map<T, IWorker<T>> mapping
serviceback to summary
private final ExecutorService service
upstreamback to summary
private final Map<T, T> upstream

Constructor Detail

GraphOrchestratorback to summary
public GraphOrchestrator(ExecutorService service, IThreadWorkerFactory<T> factory, IDynamicGraph<T> graph, Comparator<T> comparator)

Method Detail

afterExecuteback to summary
private void afterExecute(IWorker<T> r, Throwable t)
computeStatusback to summary
private IDynamicGraph.Status computeStatus(IWorker<T> worker)
handleThreadAffinityback to summary
private void handleThreadAffinity(List<T> freeNodes)
mapNodeToParentback to summary
private void mapNodeToParent(List<T> freeNodes)
mapNodeToWorkerback to summary
private void mapNodeToWorker(List<IWorker<T>> runnables, List<T> freeNodes)
runback to summary
public void run()
runNodesback to summary
private void runNodes(List<T> freeNodes)
setStatusback to summary
private void setStatus(IWorker<T> worker, IDynamicGraph.Status status)