@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()); }
WorkerExecutorInternal workerExec = poolName != null ? vertx.createSharedWorkerExecutor(poolName, options.getWorkerPoolSize(), options.getMaxWorkerExecuteTime(), options.getMaxWorkerExecuteTimeUnit()) : null; WorkerPool pool = workerExec != null ? workerExec.getPool() : null; ContextImpl context = options.isWorker() ? vertx.createWorkerContext(deploymentID, pool, conf, tccl) : vertx.createEventLoopContext(deploymentID, pool, conf, tccl); if (workerExec != null) {
@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()); }
WorkerExecutorInternal workerExec = poolName != null ? vertx.createSharedWorkerExecutor(poolName, options.getWorkerPoolSize(), options.getMaxWorkerExecuteTime(), options.getMaxWorkerExecuteTimeUnit()) : null; WorkerPool pool = workerExec != null ? workerExec.getPool() : null; ContextImpl context = options.isWorker() ? vertx.createWorkerContext(options.isMultiThreaded(), deploymentID, pool, conf, tccl) : vertx.createEventLoopContext(deploymentID, pool, conf, tccl); if (workerExec != null) {