From 5cd829d5899a0b16b717ba65c57d1c2d7bd0f566 Mon Sep 17 00:00:00 2001 From: rsc Date: Tue, 3 Apr 2007 12:50:49 +0000 Subject: finish conversion to libthread; avoids extra page proc sticking around (Tim Wiess) --- src/cmd/page/page.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src/cmd/page') diff --git a/src/cmd/page/page.c b/src/cmd/page/page.c index 52c6eee3..47a7f327 100644 --- a/src/cmd/page/page.c +++ b/src/cmd/page/page.c @@ -2,7 +2,6 @@ #include #include #include -#include #include #include #include "page.h" @@ -33,6 +32,14 @@ watcher(void *v, char *x) return 0; } +void +watcherproc(void *v) +{ + threadnotify(watcher, 1); + for(;;) + sleep(1000); +} + int bell(void *u, char *x) { @@ -131,21 +138,14 @@ threadmain(int argc, char **argv) notegp = getpid(); - switch(notewatcher = fork()){ - case -1: - sysfatal("fork\n"); + notewatcher = proccreate(watcherproc, NULL, 1024); + if(notewatcher == -1){ + sysfatal("proccreate"); threadexitsall(0); - default: - break; - case 0: - atnotify(watcher, 1); - for(;;) - sleep(1000); - /* not reached */ } rfork(RFNOTEG); - atnotify(bell, 1); + threadnotify(bell, 1); readstdin = 0; if(imagemode == 0 && argc == 0){ -- cgit v1.2.3