different fix

This commit is contained in:
rsc 2005-07-28 12:43:41 +00:00
parent d407972b54
commit f19d56825d
2 changed files with 12 additions and 5 deletions

View file

@ -285,6 +285,9 @@ threadexitsall(char *msg)
int i, npid, mypid;
Proc *p;
if(msg == nil)
msg = "";
/*
* Only one guy, ever, gets to run this.
* If two guys do it, inevitably they end up
@ -296,7 +299,9 @@ threadexitsall(char *msg)
*/
{
static Lock onelock;
lock(&onelock);
if(!canlock(&onelock))
_exits(threadexitsmsg);
threadexitsmsg = msg;
}
if(msg == nil)

View file

@ -311,6 +311,9 @@ threadexitsall(char *msg)
int i, npid, mypid;
Proc *p;
if(msg == nil)
msg = "";
/*
* Only one guy, ever, gets to run this.
* If two guys do it, inevitably they end up
@ -322,14 +325,13 @@ threadexitsall(char *msg)
*/
{
static Lock onelock;
lock(&onelock);
if(!canlock(&onelock))
_exits(threadexitsmsg);
threadexitsmsg = msg;
}
if(msg == nil)
msg = "";
mypid = getpid();
lock(&_threadprocslock);
threadexitsmsg = msg;
npid = 0;
for(p=_threadprocs; p; p=p->next)
if(p->osprocid != mypid && p->osprocid >= 1)