From f1ba462df67f3787342833371885e8b96d1cf70a Mon Sep 17 00:00:00 2001 From: John Sully Date: Sun, 30 May 2021 02:07:31 +0000 Subject: [PATCH] Delete pipe on the right thread so event handlers are cleaned up Former-commit-id: 9742c44db52929b755d6ecce16f91bee07f495ff --- src/rdb.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/rdb.cpp b/src/rdb.cpp index 6edf4231e..3d954592a 100644 --- a/src/rdb.cpp +++ b/src/rdb.cpp @@ -2897,7 +2897,11 @@ static void backgroundSaveDoneHandlerSocket(int exitcode, int bysignal) { } if (g_pserver->rdb_child_exit_pipe!=-1) close(g_pserver->rdb_child_exit_pipe); - close(g_pserver->rdb_pipe_read); + auto pipeT = g_pserver->rdb_pipe_read; + aePostFunction(g_pserver->rgthreadvar[IDX_EVENT_LOOP_MAIN].el, [pipeT]{ + aeDeleteFileEvent(serverTL->el, pipeT, AE_READABLE); + close(pipeT); + }); g_pserver->rdb_child_exit_pipe = -1; g_pserver->rdb_pipe_read = -1; zfree(g_pserver->rdb_pipe_conns);