From f4b26b64bc699519008009dad72c3248a2e414a0 Mon Sep 17 00:00:00 2001 From: rsc Date: Tue, 4 Jan 2005 22:17:10 +0000 Subject: do threading right --- src/cmd/plumb/fsys.c | 2 +- src/cmd/plumb/plumber.c | 28 +++------------------------- 2 files changed, 4 insertions(+), 26 deletions(-) (limited to 'src/cmd') diff --git a/src/cmd/plumb/fsys.c b/src/cmd/plumb/fsys.c index 837f45ad..e9be1eb6 100644 --- a/src/cmd/plumb/fsys.c +++ b/src/cmd/plumb/fsys.c @@ -199,7 +199,7 @@ startfsys(void) if(post9pservice(p[1], "plumb") < 0) sysfatal("post9pservice plumb: %r"); close(p[1]); - fsysproc(nil); + proccreate(fsysproc, nil, Stack); } static void diff --git a/src/cmd/plumb/plumber.c b/src/cmd/plumb/plumber.c index 968953d6..53847cd4 100644 --- a/src/cmd/plumb/plumber.c +++ b/src/cmd/plumb/plumber.c @@ -25,36 +25,18 @@ makeports(Ruleset *rules[]) addport(rules[i]->port); } -void -mainproc(void *v) -{ - Channel *c; - - c = v; - printerrors = 0; - makeports(rules); - startfsys(); - sendp(c, nil); -} - void threadmain(int argc, char *argv[]) { char buf[512]; int fd; - int volatile dofork; - Channel *c; progname = "plumber"; - dofork = 1; ARGBEGIN{ case 'd': debug = 1; break; - case 'f': - dofork = 0; - break; case 'p': plumbfile = ARGF(); break; @@ -83,17 +65,13 @@ threadmain(int argc, char *argv[]) rules = readrules(plumbfile, fd); close(fd); - if(dofork) - threaddaemonize(); - /* * Start all processes and threads from other proc * so we (main pid) can return to user. */ - c = chancreate(sizeof(void*), 0); - proccreate(mainproc, c, 8192); - recvp(c); - chanfree(c); + printerrors = 0; + makeports(rules); + startfsys(); threadexits(nil); } -- cgit v1.2.3