@Override public PingResultInfo ping(PingInfo pingInfo) throws ExecutionException, InterruptedException, TimeoutException { FuturePromise<PingResultInfo> result = new FuturePromise<>(); ping(pingInfo, result); if (pingInfo.getTimeout() > 0) return result.get(pingInfo.getTimeout(), pingInfo.getUnit()); else return result.get(); }