-
Nathan Harris authored
Motivation: To ship PubSub faster, it was merged to the master branch without a peer review. This commit is to address the critical points of feedback given in a post-commit review. Modifications: - Add: New RedisClientError case where a "race condition" of removing a pubsub handler and subscription can happen - Add: New state to RedisPubSubHandler for when it has been removed from a ChannelPipeline - Change: RedisPubSubHandler to require an `eventLoop` in its initializer - Change: The subscribe and unsubscribe methods on RedisPubSubHandler to handle the EventLoop hopping to be thread-safe Result: PubSub should have a more robust and thread-safe implementation.