]> git.saurik.com Git - redis.git/commit
Use safe dictionary iterator from KEYS
authorPieter Noordhuis <pcnoordhuis@gmail.com>
Mon, 30 Apr 2012 17:16:20 +0000 (10:16 -0700)
committerPieter Noordhuis <pcnoordhuis@gmail.com>
Mon, 30 Apr 2012 17:16:20 +0000 (10:16 -0700)
commit9311d2b527b0bb3e72e61b143718e6def51491e6
tree95972aa5cb949c48acba1ccfad362196fb0cbff3
parent8520066d7b4782adaf9caa56036071ddb3de86fc
Use safe dictionary iterator from KEYS

Every matched key in a KEYS call is checked for expiration. When the key
is set to expire, the call to `getExpire` will assert that the key also
exists in the main dictionary. This in turn causes a rehashing step to
be executed. Rehashing a dictionary when there is an iterator active may
result in the iterator emitting duplicate entries, or not emitting some
entries at all. By using a safe iterator, the rehash step is omitted.
src/db.c