diff options
Diffstat (limited to 'server.c')
-rw-r--r-- | server.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -89,7 +89,7 @@ server_delete(struct cfg *cfg, struct server *scfg) rcon_delete(cfg, scfg); list_for_each_entry_safe(local, ltmp, &scfg->locals, list) - uring_cancel(cfg, &local->task); + uring_task_destroy(cfg, &local->task); list_for_each_entry_safe(proxy, ptmp, &scfg->proxys, list) proxy_delete(cfg, proxy); @@ -106,7 +106,7 @@ server_delete(struct cfg *cfg, struct server *scfg) uring_poll_cancel(cfg, &scfg->exec_task); uring_task_put(cfg, &scfg->exec_task); - uring_task_put(cfg, &scfg->task); + uring_task_destroy(cfg, &scfg->task); } void @@ -183,7 +183,6 @@ server_local_accept(struct cfg *cfg, struct uring_task *task, int res) if (task->dead) { fprintf(stderr, "Task dead!\n"); - uring_task_put(cfg, task); return; } @@ -269,8 +268,10 @@ server_exec_done(struct cfg *cfg, struct uring_task *task, int res) int r; siginfo_t info; - if (task->dead) + if (task->dead) { + /* Should we leave child processes running? */ goto out; + } if (!(res & POLLIN)) { fprintf(stderr, "%s: unexpected result: %i\n", __func__, res); |