@Override public ContextImpl createWorkerContext(String deploymentID, WorkerPool workerPool, JsonObject config, ClassLoader tccl) { if (workerPool == null) { workerPool = this.workerPool; } return new WorkerContext(this, internalBlockingPool, workerPool, deploymentID, config, tccl); }
@Override void executeAsync(Handler<Void> task) { execute(null, task); }
@Override <T> void execute(T value, Handler<T> task) { orderedTasks.execute(wrapTask(value, task, workerPool.metrics()), workerPool.executor()); } }
final <T> Runnable wrapTask(T arg, Handler<T> hTask, PoolMetrics metrics) { Object metric = metrics != null ? metrics.submitted() : null; return () -> { if (metrics != null) { metrics.begin(metric); } boolean succeeded = executeTask(arg, hTask); if (metrics != null) { metrics.end(metric, succeeded); } }; }
@Override <T> void execute(T value, Handler<T> task) { orderedTasks.execute(wrapTask(value, task, workerPool.metrics()), workerPool.executor()); } }
final <T> Runnable wrapTask(T arg, Handler<T> hTask, PoolMetrics metrics) { Object metric = metrics != null ? metrics.submitted() : null; return () -> { if (metrics != null) { metrics.begin(metric); } boolean succeeded = executeTask(arg, hTask); if (metrics != null) { metrics.end(metric, succeeded); } }; }
@Override public ContextImpl createWorkerContext(boolean multiThreaded, String deploymentID, WorkerPool workerPool, JsonObject config, ClassLoader tccl) { if (workerPool == null) { workerPool = this.workerPool; } if (multiThreaded) { return new MultiThreadedWorkerContext(this, internalBlockingPool, workerPool, deploymentID, config, tccl); } else { return new WorkerContext(this, internalBlockingPool, workerPool, deploymentID, config, tccl); } }
@Override void executeAsync(Handler<Void> task) { execute(null, task); }