aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libthread/exit.c2
-rw-r--r--src/libthread/main.c4
-rw-r--r--src/libthread/sched.c6
3 files changed, 6 insertions, 6 deletions
diff --git a/src/libthread/exit.c b/src/libthread/exit.c
index cf34c60c..f3d4bb8e 100644
--- a/src/libthread/exit.c
+++ b/src/libthread/exit.c
@@ -61,7 +61,7 @@ threadexitsall(char *exitstr)
}
/* leave */
- exit(0);
+ exits(0);
}
Channel*
diff --git a/src/libthread/main.c b/src/libthread/main.c
index ce810dba..0a2fccb7 100644
--- a/src/libthread/main.c
+++ b/src/libthread/main.c
@@ -29,7 +29,7 @@ _threaddie(int x)
USED(x);
if(_threadexitsallstatus)
- _exit(_threadexitsallstatus[0] ? 1 : 0);
+ _exits(_threadexitsallstatus);
}
int
@@ -109,7 +109,7 @@ _schedexit(Proc *p)
strncpy(ex, p->exitstr, sizeof ex);
ex[sizeof ex-1] = '\0';
free(p);
- _exit(ex[0]);
+ _exits(ex);
}
int
diff --git a/src/libthread/sched.c b/src/libthread/sched.c
index cfc76d67..df8014b6 100644
--- a/src/libthread/sched.c
+++ b/src/libthread/sched.c
@@ -38,7 +38,7 @@ _schedinit(void *arg)
;
_threaddebug(DBGSCHED, "top of schedinit, _threadexitsallstatus=%p", _threadexitsallstatus);
if(_threadexitsallstatus)
- exits(_threadexitsallstatus);
+ _exits(_threadexitsallstatus);
lock(&p->lock);
if((t=p->thread) != nil){
p->thread = nil;
@@ -149,7 +149,7 @@ relock:
unlock(&p->readylock);
while(rendezvous((ulong)q, 0) == ~0){
if(_threadexitsallstatus)
- exits(_threadexitsallstatus);
+ _exits(_threadexitsallstatus);
}
/* lock picked up from _threadready */
}
@@ -249,7 +249,7 @@ _threadready(Thread *t)
_threaddebug(DBGSCHED, "waking process %d", t->proc->pid);
while(rendezvous((ulong)q, 0) == ~0){
if(_threadexitsallstatus)
- exits(_threadexitsallstatus);
+ _exits(_threadexitsallstatus);
}
}else
unlock(&t->proc->readylock);