@Override public Stream syn(SynInfo synInfo, StreamFrameListener listener) throws ExecutionException, InterruptedException, TimeoutException { FuturePromise<Stream> result = new FuturePromise<>(); syn(synInfo, listener, result); if (synInfo.getTimeout() > 0) return result.get(synInfo.getTimeout(), synInfo.getUnit()); else return result.get(); }