miyagawa / AnyEvent-Redis

Asynchronous Redis client
http://search.cpan.org/dist/AnyEvent-Redis
41 stars 16 forks source link

New multi semantics, and various cleanups #14

Closed chloe-zen closed 13 years ago

chloe-zen commented 13 years ago

The core of this change has three parts: (1) Treating errors in bulk replies as special reply elements (AnyEvent::Redis::Error); (2) collecting CVs while reading the QUEUEd markers inside a transaction, and (3) matching these CVs to elements of the EXEC bulk reply. This means that each transaction command gets its own response. The EXEC still gets the full response, for compatibility.

There's a lot more in here, though, and I think it's all worthwhile. For review purposes, try "diff -w" so you can temporarily ignore the whitespace changes which only make the code consistent in style.

dgl commented 13 years ago

Thanks, merged.

Looks good, although could do with some docs ;)

I also wonder what happens when WATCH is used, maybe a test for that?

[I'm not intending to release this until there's docs, but I don't mind writing those myself -- won't be for a few days though.]