summaryrefslogtreecommitdiff
path: root/src/tracking.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tracking.c')
-rw-r--r--src/tracking.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/tracking.c b/src/tracking.c
index a659e98dd..c98421edb 100644
--- a/src/tracking.c
+++ b/src/tracking.c
@@ -454,7 +454,12 @@ void trackingInvalidateKeysOnFlush(int async) {
while ((ln = listNext(&li)) != NULL) {
client *c = listNodeValue(ln);
if (c->flags & CLIENT_TRACKING) {
- sendTrackingMessage(c,shared.null[c->resp]->ptr,sdslen(shared.null[c->resp]->ptr),1);
+ if (c == server.current_client) {
+ incrRefCount(shared.null[c->resp]);
+ listAddNodeTail(server.tracking_pending_keys,shared.null[c->resp]);
+ } else {
+ sendTrackingMessage(c,shared.null[c->resp]->ptr,sdslen(shared.null[c->resp]->ptr),1);
+ }
}
}
}