internal async Task UnsubscribeAsyncImpl(Exception error = null, CommandFlags flags = CommandFlags.None) { var parent = _parent; _parent = null; if (parent != null) { await parent.UnsubscribeAsync(Channel, HandleMessage, flags).ConfigureAwait(false); } _queue.Writer.TryComplete(error); }
internal void UnsubscribeImpl(Exception error = null, CommandFlags flags = CommandFlags.None) { var parent = _parent; _parent = null; if (parent != null) { parent.UnsubscribeAsync(Channel, HandleMessage, flags); } _queue.Writer.TryComplete(error); }
internal ChannelMessageQueue(RedisChannel redisChannel, RedisSubscriber parent) { Channel = redisChannel; _parent = parent; _queue = System.Threading.Channels.Channel.CreateUnbounded <ChannelMessage>(s_ChannelOptions); }