Delete pipe on the right thread so event handlers are cleaned up

Former-commit-id: 9742c44db52929b755d6ecce16f91bee07f495ff
This commit is contained in:
John Sully 2021-05-30 02:07:31 +00:00
parent f82860104e
commit f1ba462df6

View File

@ -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);