diff options
author | Russ Cox <rsc@swtch.com> | 2020-12-30 00:10:11 -0500 |
---|---|---|
committer | Russ Cox <rsc@swtch.com> | 2020-12-30 00:12:14 -0500 |
commit | b3a20a96eb2b91a5b0b8a8fb506e20a2fb50ebe8 (patch) | |
tree | 0cebec89bb62594af9c5310e1ba99a4dee65b51b /src/libthread/daemonize.c | |
parent | 5b37d9126474864b5299426e27b2af37fcc96dd0 (diff) | |
download | plan9port-b3a20a96eb2b91a5b0b8a8fb506e20a2fb50ebe8.tar.gz plan9port-b3a20a96eb2b91a5b0b8a8fb506e20a2fb50ebe8.tar.bz2 plan9port-b3a20a96eb2b91a5b0b8a8fb506e20a2fb50ebe8.zip |
libthread: add threadmaybackground
Programs that want to background themselves now need
to define threadmaybackground returning 1.
This avoids a confusing (to people and debuggers)
extra parent process for all the threaded programs
that will never want to background themselves.
Diffstat (limited to 'src/libthread/daemonize.c')
-rw-r--r-- | src/libthread/daemonize.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/libthread/daemonize.c b/src/libthread/daemonize.c index 387d1527..f994ffe1 100644 --- a/src/libthread/daemonize.c +++ b/src/libthread/daemonize.c @@ -8,7 +8,7 @@ #undef wait static int sigpid; -static int threadpassfd; +static int threadpassfd = -1; static int gotsigchld; static void @@ -163,9 +163,9 @@ _threadsetupdaemonize(void) void _threaddaemonize(void) { - if(threadpassfd >= 0){ - write(threadpassfd, "0", 1); - close(threadpassfd); - threadpassfd = -1; - } + if(threadpassfd < 0) + sysfatal("threads in main proc exited w/o threadmaybackground"); + write(threadpassfd, "0", 1); + close(threadpassfd); + threadpassfd = -1; } |