private Mono convertFutureToMono()

in cloud-spanner-r2dbc/src/main/java/com/google/cloud/spanner/r2dbc/v2/DatabaseClientReactiveAdapter.java [305:325]


  private <T> Mono<T> convertFutureToMono(Supplier<ApiFuture<T>> futureSupplier) {
    return Mono.create(
        sink -> {
          ApiFuture future = futureSupplier.get();
          sink.onCancel(() -> future.cancel(true));

          ApiFutures.addCallback(future,
              new ApiFutureCallback<T>() {
                @Override
                public void onFailure(Throwable t) {
                  sink.error(t);
                }

                @Override
                public void onSuccess(T result) {
                  sink.success(result);
                }
              },
              REACTOR_EXECUTOR);
        });
  }