• M
    Fix blocking operations from missing new lists · 33f943b4
    Matt Stancliff 提交于
    Behrad Zari discovered [1] and Josiah reported [2]: if you block
    and wait for a list to exist, but the list creates from
    a non-push command, the blocked client never gets notified.
    
    This commit adds notification of blocked clients into
    the DB layer and away from individual commands.
    
    Lists can be created by [LR]PUSH, SORT..STORE, RENAME, MOVE,
    and RESTORE.  Previously, blocked client notifications were
    only triggered by [LR]PUSH.  Your client would never get
    notified if a list were created by SORT..STORE or RENAME or
    a RESTORE, etc.
    
    Blocked client notification now happens in one unified place:
      - dbAdd() triggers notification when adding a list to the DB
    
    Two new tests are added that fail prior to this commit.
    
    All test pass.
    
    Fixes #1668
    
    [1]: https://groups.google.com/forum/#!topic/redis-db/k4oWfMkN1NU
    [2]: #1668
    33f943b4
redis.h 64.9 KB