Skip to content

Commit db54d64

Browse files
authored
redis: close watchCh at the after watchLoop (#70)
1 parent 0bf7d50 commit db54d64

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

store/redis/redis.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,10 @@ func (r *Redis) Watch(ctx context.Context, key string, _ *store.ReadOptions) (<-
175175
sub := newSubscribe(ctx, r.client, regexWatch(nKey, false))
176176

177177
go func(ctx context.Context, sub *subscribe, get getter, push pusher) {
178-
defer func() { _ = sub.Close() }()
178+
defer func() {
179+
close(watchCh)
180+
_ = sub.Close()
181+
}()
179182

180183
msgCh := sub.Receive(ctx)
181184
if err := watchLoop(ctx, msgCh, get, push); err != nil {
@@ -208,7 +211,10 @@ func (r *Redis) WatchTree(ctx context.Context, directory string, _ *store.ReadOp
208211
sub := newSubscribe(ctx, r.client, regexWatch(nKey, true))
209212

210213
go func(ctx context.Context, sub *subscribe, get getter, push pusher) {
211-
defer func() { _ = sub.Close() }()
214+
defer func() {
215+
close(watchCh)
216+
_ = sub.Close()
217+
}()
212218

213219
msgCh := sub.Receive(ctx)
214220
if err := watchLoop(ctx, msgCh, get, push); err != nil {

0 commit comments

Comments
 (0)