aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/worker.c
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2023-05-06 15:54:55 +0200
committerEgor Tensin <Egor.Tensin@gmail.com>2023-05-06 15:55:06 +0200
commit156edd022ef315eb68e0f7002994dfeb172a25c1 (patch)
tree596268f59b72cc1ccf1e2aad7e64297a3ff8b2de /src/worker.c
parentget rid of __attribute__((constructor)) (diff)
downloadcimple-156edd022ef315eb68e0f7002994dfeb172a25c1.tar.gz
cimple-156edd022ef315eb68e0f7002994dfeb172a25c1.zip
shut down server/workers gracefully on SIGTERM
Diffstat (limited to '')
-rw-r--r--src/worker.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/worker.c b/src/worker.c
index 05243ac..7471cd1 100644
--- a/src/worker.c
+++ b/src/worker.c
@@ -195,8 +195,13 @@ int worker_main(struct worker *worker, UNUSED int argc, UNUSED char *argv[])
log("Waiting for a new command\n");
ret = msg_recv(worker->fd, &request);
- if (ret < 0)
+ if (ret < 0) {
+ if (errno == EINVAL && global_stop_flag) {
+ ret = 0;
+ break;
+ }
return ret;
+ }
ret = worker_msg_handler(worker, &request);
msg_free(&request);