@Override void close() { synchronized (VertxImpl.this) { if (refCount > 0) { refCount = 0; super.close(); } } }
@Test public void testExecuteFromIOWorkerFromNonVertxThread() { assertEquals("true", System.getProperty("vertx.threadChecks")); ExecutorService a = Executors.newSingleThreadExecutor(); ContextInternal ctx = ((VertxInternal) vertx).createWorkerContext(null, new WorkerPool(a, null), null, Thread.currentThread().getContextClassLoader()); AtomicBoolean called = new AtomicBoolean(); try { ctx.executeFromIO(v -> { called.set(true); }); fail(); } catch (IllegalStateException ignore) { // } assertFalse(called.get()); }
public ExecutorService getWorkerPool() { return workerPool.executor(); }
new VertxThreadFactory("vert.x-internal-blocking-", checker, true, options.getMaxWorkerExecuteTime(), options.getMaxWorkerExecuteTimeUnit())); PoolMetrics internalBlockingPoolMetrics = metrics != null ? metrics.createPoolMetrics("worker", "vert.x-internal-blocking", options.getInternalBlockingPoolSize()) : null; internalBlockingPool = new WorkerPool(internalBlockingExec, internalBlockingPoolMetrics); namedWorkerPools = new HashMap<>(); workerPool = new WorkerPool(workerExec, workerPoolMetrics); defaultWorkerPoolSize = options.getWorkerPoolSize(); defaultWorkerMaxExecTime = options.getMaxWorkerExecuteTime();
public ExecutorService getWorkerPool() { return workerPool.executor(); }
@Test public void testExecuteFromIOWorkerFromNonVertxThread() { assertEquals("true", System.getProperty("vertx.threadChecks")); ExecutorService a = Executors.newSingleThreadExecutor(); ContextInternal ctx = ((VertxInternal) vertx).createWorkerContext(false, null, new WorkerPool(a, null), null, Thread.currentThread().getContextClassLoader()); AtomicBoolean called = new AtomicBoolean(); try { ctx.executeFromIO(v -> { called.set(true); }); fail(); } catch (IllegalStateException ignore) { // } assertFalse(called.get()); }
void release() { synchronized (VertxImpl.this) { if (--refCount == 0) { namedWorkerPools.remove(name); super.close(); } } } }
new VertxThreadFactory("vert.x-internal-blocking-", checker, true, options.getMaxWorkerExecuteTime(), options.getMaxWorkerExecuteTimeUnit())); PoolMetrics internalBlockingPoolMetrics = metrics != null ? metrics.createPoolMetrics("worker", "vert.x-internal-blocking", options.getInternalBlockingPoolSize()) : null; internalBlockingPool = new WorkerPool(internalBlockingExec, internalBlockingPoolMetrics); namedWorkerPools = new HashMap<>(); workerPool = new WorkerPool(workerExec, workerPoolMetrics); defaultWorkerPoolSize = options.getWorkerPoolSize(); defaultWorkerMaxExecTime = options.getMaxWorkerExecuteTime();
@Override void close() { synchronized (VertxImpl.this) { if (refCount > 0) { refCount = 0; super.close(); } } }
void release() { synchronized (VertxImpl.this) { if (--refCount == 0) { namedWorkerPools.remove(name); super.close(); } } } }