WorkerExecutor close() should return a Future<Void>

This commit is contained in:
Julien Viet
2019-11-03 13:36:24 +01:00
parent f490d45892
commit 15e694ca63
2 changed files with 8 additions and 7 deletions

View File

@@ -72,7 +72,6 @@ public interface WorkerExecutor extends Measured {
/**
* Close the executor.
*/
default void close() {
}
Future<Void> close();
}

View File

@@ -67,22 +67,24 @@ class WorkerExecutorImpl implements MetricsProvider, WorkerExecutorInternal {
}
@Override
public void close() {
public Future<Void> 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<AsyncResult<Void>> completionHandler) {
close();
completionHandler.handle(Future.succeededFuture());
Future<Void> fut = close();
if (completionHandler != null) {
fut.setHandler(completionHandler);
}
}
}