aboutsummaryrefslogtreecommitdiff
path: root/src/libthread/daemonize.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2020-12-30 00:10:11 -0500
committerRuss Cox <rsc@swtch.com>2020-12-30 00:12:14 -0500
commitb3a20a96eb2b91a5b0b8a8fb506e20a2fb50ebe8 (patch)
tree0cebec89bb62594af9c5310e1ba99a4dee65b51b /src/libthread/daemonize.c
parent5b37d9126474864b5299426e27b2af37fcc96dd0 (diff)
downloadplan9port-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.c12
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;
}