@Override
    public <T> CompletableFuture<T> execute(final Supplier<T> action) {
      final CompletableFuture<T> result = new CompletableFuture<>();
      vertx.<T>executeBlocking(
          future -> {
            try {
              future.complete(action.get());
            } catch (final Throwable t) {
              future.fail(t);
            }
          },
          false,
          event -> {
            if (event.succeeded()) {
              result.complete(event.result());
            } else {
              result.completeExceptionally(event.cause());
            }
          });
      return result;
    }
The UDP packet handler. This is the entrypoint for all received datagrams.

@param datagram the received datagram.
ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/discovery/VertxPeerDiscoveryAgent.java