antirez/redis — pull request #1669 by mattsta (2014-04-08 00:05:16+00:00)
Title: Fix blocking operations from missing new lists

Josiah found an error condition: if you're blocked waiting
for a list to exist, but the list is created with a non-user
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