Commit Diff


commit - 41deef57ef8abbb64265cba6445f6bff5c99b455
commit + 5cd829d5899a0b16b717ba65c57d1c2d7bd0f566
blob - 52c6eee3599bb5e6a246a68912d29b4cc12f9b22
blob + 47a7f327758a7fe0ca55dbd929184055aff0055d
--- src/cmd/page/page.c
+++ src/cmd/page/page.c
@@ -2,7 +2,6 @@
 #include <libc.h>
 #include <draw.h>
 #include <thread.h>
-#include <thread.h>
 #include <bio.h>
 #include <cursor.h>
 #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){