diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2024-01-05 07:02:25 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2024-01-05 07:02:25 +0000 |
commit | ee2174eb6d33da8eea7d1f68101b70deb12a2a4c (patch) | |
tree | 92d7907cef91625b64eb88cd3daadbb4b7fc99e3 | |
parent | 8d2b84747b1cbc54d6f23cc461d3ef838c1dfec9 (diff) |
telco: fix rfork() race for pid
-rw-r--r-- | sys/src/cmd/telco/telco.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/src/cmd/telco/telco.c b/sys/src/cmd/telco/telco.c index 69f79d59b..dbc313212 100644 --- a/sys/src/cmd/telco/telco.c +++ b/sys/src/cmd/telco/telco.c @@ -72,7 +72,6 @@ struct Dev char rbuf[Nrbuf]; char *rp; char *wp; - long pid; }; enum @@ -1159,7 +1158,7 @@ monitor(Dev *d) int n; char *p; char file[256]; - int background; + int background, pid; background = 0; d->ctl = d->data = -1; @@ -1178,12 +1177,13 @@ monitor(Dev *d) if(!background){ background = 1; - switch(d->pid = rfork(RFPROC|RFMEM)){ + switch(pid = rfork(RFPROC|RFMEM)){ case -1: error("out of processes"); case 0: break; default: + d->monitoring = pid; return; } } |