Commit 333547da authored by antirez's avatar antirez
Browse files

Lua debugger: call wait3() if there are pending forked debugging sessions.

parent 01636435
...@@ -1650,6 +1650,12 @@ int ldbRemoveChild(pid_t pid) { ...@@ -1650,6 +1650,12 @@ int ldbRemoveChild(pid_t pid) {
return 0; return 0;
} }
/* Return the number of children we still did not received termination
* acknowledge via wait() in the parent process. */
int ldbPendingChildren(void) {
return listLength(ldb.children);
}
/* Kill all the forked sessions. */ /* Kill all the forked sessions. */
void ldbKillForkedSessions(void) { void ldbKillForkedSessions(void) {
listIter li; listIter li;
......
...@@ -1186,7 +1186,9 @@ int serverCron(struct aeEventLoop *eventLoop, long long id, void *clientData) { ...@@ -1186,7 +1186,9 @@ int serverCron(struct aeEventLoop *eventLoop, long long id, void *clientData) {
} }
/* Check if a background saving or AOF rewrite in progress terminated. */ /* Check if a background saving or AOF rewrite in progress terminated. */
if (server.rdb_child_pid != -1 || server.aof_child_pid != -1) { if (server.rdb_child_pid != -1 || server.aof_child_pid != -1 ||
ldbPendingChildren())
{
int statloc; int statloc;
pid_t pid; pid_t pid;
......
...@@ -1473,6 +1473,7 @@ int redis_check_rdb_main(char **argv, int argc); ...@@ -1473,6 +1473,7 @@ int redis_check_rdb_main(char **argv, int argc);
void scriptingInit(int setup); void scriptingInit(int setup);
int ldbRemoveChild(pid_t pid); int ldbRemoveChild(pid_t pid);
void ldbKillForkedSessions(void); void ldbKillForkedSessions(void);
int ldbPendingChildren(void);
/* Blocked clients */ /* Blocked clients */
void processUnblockedClients(void); void processUnblockedClients(void);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment