Commit fa00e20b authored by Guy Benoish's avatar Guy Benoish
Browse files

Make blocking list commands send keyspace notifications

parent 3a5bf75e
...@@ -283,6 +283,7 @@ void handleClientsBlockedOnKeys(void) { ...@@ -283,6 +283,7 @@ void handleClientsBlockedOnKeys(void) {
if (listTypeLength(o) == 0) { if (listTypeLength(o) == 0) {
dbDelete(rl->db,rl->key); dbDelete(rl->db,rl->key);
notifyKeyspaceEvent(NOTIFY_GENERIC,"del",rl->key,rl->db->id);
} }
/* We don't call signalModifiedKey() as it was already called /* We don't call signalModifiedKey() as it was already called
* when an element was pushed on the list. */ * when an element was pushed on the list. */
......
...@@ -639,6 +639,10 @@ int serveClientBlockedOnList(client *receiver, robj *key, robj *dstkey, redisDb ...@@ -639,6 +639,10 @@ int serveClientBlockedOnList(client *receiver, robj *key, robj *dstkey, redisDb
addReplyMultiBulkLen(receiver,2); addReplyMultiBulkLen(receiver,2);
addReplyBulk(receiver,key); addReplyBulk(receiver,key);
addReplyBulk(receiver,value); addReplyBulk(receiver,value);
/* Notify event. */
char *event = (where == LIST_HEAD) ? "lpop" : "rpop";
notifyKeyspaceEvent(NOTIFY_LIST,event,key,receiver->db->id);
} else { } else {
/* BRPOPLPUSH */ /* BRPOPLPUSH */
robj *dstobj = robj *dstobj =
...@@ -663,6 +667,9 @@ int serveClientBlockedOnList(client *receiver, robj *key, robj *dstkey, redisDb ...@@ -663,6 +667,9 @@ int serveClientBlockedOnList(client *receiver, robj *key, robj *dstkey, redisDb
db->id,argv,3, db->id,argv,3,
PROPAGATE_AOF| PROPAGATE_AOF|
PROPAGATE_REPL); PROPAGATE_REPL);
/* Notify event ("lpush" was notified by rpoplpushHandlePush). */
notifyKeyspaceEvent(NOTIFY_LIST,"rpop",key,receiver->db->id);
} else { } else {
/* BRPOPLPUSH failed because of wrong /* BRPOPLPUSH failed because of wrong
* destination type. */ * destination type. */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment