summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2024-01-05 07:02:25 +0000
committercinap_lenrek <cinap_lenrek@felloff.net>2024-01-05 07:02:25 +0000
commitee2174eb6d33da8eea7d1f68101b70deb12a2a4c (patch)
tree92d7907cef91625b64eb88cd3daadbb4b7fc99e3
parent8d2b84747b1cbc54d6f23cc461d3ef838c1dfec9 (diff)
telco: fix rfork() race for pid
-rw-r--r--sys/src/cmd/telco/telco.c6
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;
}
}