concurrent/src/main/java/io/airlift/concurrent/MoreFutures.java
public static <T> void addSuccessCallback(ListenableFuture<T> future, Consumer<T> successCallback)
    {
        addSuccessCallback(future, successCallback, directExecutor());
    }
public static <T> void addSuccessCallback(ListenableFuture<T> future, Consumer<T> successCallback)
    {
        addSuccessCallback(future, successCallback, directExecutor());
    }
Invokes the callback if the future completes successfully. Note, this uses the direct
executor, so the callback should not be resource intensive.