in src/main/java/com/twitter/http2/Pipe.java [111:129]
public Future<T> receive() {
Node node;
synchronized (this) {
node = sendQueue.poll();
if (node == null) {
if (closed) {
return ImmediateEventExecutor.INSTANCE.newFailedFuture(PIPE_CLOSED);
}
Promise<T> promise = ImmediateEventExecutor.INSTANCE.newPromise();
receiveQueue.add(promise);
return promise;
}
}
node.promise.setSuccess(null);
return ImmediateEventExecutor.INSTANCE.newSucceededFuture(node.message);
}