summaryrefslogtreecommitdiff
path: root/src/multi.c
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2013-03-26 10:27:45 +0100
committerantirez <antirez@gmail.com>2013-03-26 10:27:45 +0100
commit2f49734029bb94c74466e13f517a480cdcf548df (patch)
treea7f2c7f822f3f35e25a7d20fdef7a9bc9b77c177 /src/multi.c
parentafce0106391213721775d6c0888dba26db7793fa (diff)
downloadredis-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.c11
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 */