private Http2Stream GetImpl(StreamGetCallback cb) { lockStreams.WaitOne(); var stream = new Http2Stream(flowControlManager, GetNextIdentifier()); streams.Add(stream.StreamIdentifer, stream); lockStreams.Release(); cb?.Invoke(stream); return(stream); }
private Http2Stream GetWithIdentifier(uint streamIdentifier, StreamGetCallback cb) { lockStreams.WaitOne(); Http2Stream stream = null; if (!streams.ContainsKey(streamIdentifier)) { stream = new Http2Stream(flowControlManager, streamIdentifier); streams.Add(streamIdentifier, stream); } else { stream = streams[streamIdentifier]; } lockStreams.Release(); cb?.Invoke(stream); return(stream); }
public void Get(StreamGetCallback cb) { new Thread(() => GetImpl(cb)).Start(); }
public void Get(uint streamIdentifier, StreamGetCallback cb) { new Thread(() => GetWithIdentifier(streamIdentifier, cb)).Start(); }