From 37ff25cecf9eeb26a54dad69e04e7e6380e46bcf Mon Sep 17 00:00:00 2001 From: John Sully Date: Sun, 1 Dec 2019 18:17:33 -0500 Subject: [PATCH] Fix Issue #107 Former-commit-id: 98a928147ff55a4b7299f9c51637684eed307c41 --- src/aof.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/aof.cpp b/src/aof.cpp index 719b72ed9..d48b664d2 100644 --- a/src/aof.cpp +++ b/src/aof.cpp @@ -165,7 +165,10 @@ void aofRewriteBufferAppend(unsigned char *s, unsigned long len) { /* Install a file event to send data to the rewrite child if there is * not one already. */ - aeCreateRemoteFileEvent(g_pserver->rgthreadvar[IDX_EVENT_LOOP_MAIN].el, g_pserver->aof_pipe_write_data_to_child, AE_WRITABLE, aofChildWriteDiffData, NULL, FALSE); + aePostFunction(g_pserver->rgthreadvar[IDX_EVENT_LOOP_MAIN].el, []{ + if (g_pserver->aof_pipe_write_data_to_child >= 0) + aeCreateFileEvent(g_pserver->rgthreadvar[IDX_EVENT_LOOP_MAIN].el, g_pserver->aof_pipe_write_data_to_child, AE_WRITABLE, aofChildWriteDiffData, NULL); + }); } /* Write the buffer (possibly composed of multiple blocks) into the specified @@ -1566,6 +1569,7 @@ void aofClosePipes(void) { aeDeleteFileEventAsync(serverTL->el,fdAofWritePipe,AE_WRITABLE); close(fdAofWritePipe); }); + g_pserver->aof_pipe_write_data_to_child = -1; close(g_pserver->aof_pipe_read_data_from_parent); close(g_pserver->aof_pipe_write_ack_to_parent);