@Override
public void syn(SynInfo synInfo, StreamFrameListener listener, Promise<Stream> promise)
{
int associatedStreamId = 0;
if (synInfo instanceof PushSynInfo)
associatedStreamId = ((PushSynInfo)synInfo).getAssociatedStreamId();
synchronized (this)
{
int streamId = streamIds.getAndAdd(2);
SynStreamFrame synStream = new SynStreamFrame(version, synInfo.getFlags(), streamId, associatedStreamId, synInfo.getPriority(), (short)0, synInfo.getHeaders());
IStream stream = createStream(synStream, listener, true, promise);
if (stream == null)
return;
generateAndEnqueueControlFrame(stream, synStream, synInfo.getTimeout(), synInfo.getUnit(), stream);
}
}