in src/main/java/com/twitter/http2/Pipe.java [84:104]
public Future<Void> send(T message) {
Objects.requireNonNull(message, "msg");
Promise<T> receivePromise;
synchronized (this) {
if (closed) {
return CLOSED_FUTURE;
}
receivePromise = receiveQueue.poll();
if (receivePromise == null) {
Promise<Void> sendPromise = ImmediateEventExecutor.INSTANCE.newPromise();
sendQueue.add(new Node(message, sendPromise));
return sendPromise;
}
}
receivePromise.setSuccess(message);
return SENT_FUTURE;
}