diff options
author | antirez <antirez@gmail.com> | 2013-03-26 10:27:45 +0100 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2013-03-26 10:27:45 +0100 |
commit | 2f49734029bb94c74466e13f517a480cdcf548df (patch) | |
tree | a7f2c7f822f3f35e25a7d20fdef7a9bc9b77c177 /src/multi.c | |
parent | afce0106391213721775d6c0888dba26db7793fa (diff) | |
download | redis-2f49734029bb94c74466e13f517a480cdcf548df.tar.gz |
Transactions: use the propagate() API to propagate MULTI.
The behavior is the same, but the code is now cleaner and uses the
proper interface instead of dealing directly with AOF/replication
functions.
Diffstat (limited to 'src/multi.c')
-rw-r--r-- | src/multi.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/multi.c b/src/multi.c index ba8baf0a2..2ceca8caf 100644 --- a/src/multi.c +++ b/src/multi.c @@ -103,12 +103,11 @@ void discardCommand(redisClient *c) { /* Send a MULTI command to all the slaves and AOF file. Check the execCommand * implementation for more information. */ -void execCommandReplicateMulti(redisClient *c) { +void execCommandPropagateMulti(redisClient *c) { robj *multistring = createStringObject("MULTI",5); - if (server.aof_state != REDIS_AOF_OFF) - feedAppendOnlyFile(server.multiCommand,c->db->id,&multistring,1); - replicationFeedSlaves(server.slaves,c->db->id,&multistring,1); + propagate(server.multiCommand,c->db->id,&multistring,1, + REDIS_PROPAGATE_AOF|REDIS_PROPAGATE_REPL); decrRefCount(multistring); } @@ -139,11 +138,11 @@ void execCommand(redisClient *c) { goto handle_monitor; } - /* Replicate a MULTI request now that we are sure the block is executed. + /* Propagate a MULTI request now that we are sure the block is executed. * This way we'll deliver the MULTI/..../EXEC block as a whole and * both the AOF and the replication link will have the same consistency * and atomicity guarantees. */ - execCommandReplicateMulti(c); + execCommandPropagateMulti(c); /* Exec all the queued commands */ unwatchAllKeys(c); /* Unwatch ASAP otherwise we'll waste CPU cycles */ |