diff --git a/src/main/java/io/vertx/core/WorkerExecutor.java b/src/main/java/io/vertx/core/WorkerExecutor.java index 944a41eed..0e951f91b 100644 --- a/src/main/java/io/vertx/core/WorkerExecutor.java +++ b/src/main/java/io/vertx/core/WorkerExecutor.java @@ -72,7 +72,6 @@ public interface WorkerExecutor extends Measured { /** * Close the executor. */ - default void close() { - } + Future close(); } diff --git a/src/main/java/io/vertx/core/impl/WorkerExecutorImpl.java b/src/main/java/io/vertx/core/impl/WorkerExecutorImpl.java index 9f2b85adc..381987f65 100644 --- a/src/main/java/io/vertx/core/impl/WorkerExecutorImpl.java +++ b/src/main/java/io/vertx/core/impl/WorkerExecutorImpl.java @@ -67,22 +67,24 @@ class WorkerExecutorImpl implements MetricsProvider, WorkerExecutorInternal { } @Override - public void close() { + public Future close() { synchronized (this) { if (!closed) { closed = true; } else { - return; + return Future.succeededFuture(); } } ctx.removeCloseHook(this); pool.release(); + return Future.succeededFuture(); } @Override public void close(Handler> completionHandler) { - close(); - completionHandler.handle(Future.succeededFuture()); + Future fut = close(); + if (completionHandler != null) { + fut.setHandler(completionHandler); + } } - }