libthread: fix no-receive nbrecv etc. bug (David Jeannot)
This commit is contained in:
parent
454ae2ad28
commit
0215811dc2
1 changed files with 12 additions and 8 deletions
|
|
@ -363,8 +363,9 @@ chanrecvp(Channel *c)
|
||||||
{
|
{
|
||||||
void *v;
|
void *v;
|
||||||
|
|
||||||
_chanop(c, CHANRCV, (void*)&v, 1);
|
if(_chanop(c, CHANRCV, (void*)&v, 1) > 0)
|
||||||
return v;
|
return v;
|
||||||
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -378,8 +379,9 @@ channbrecvp(Channel *c)
|
||||||
{
|
{
|
||||||
void *v;
|
void *v;
|
||||||
|
|
||||||
_chanop(c, CHANRCV, (void*)&v, 0);
|
if(_chanop(c, CHANRCV, (void*)&v, 0) > 0)
|
||||||
return v;
|
return v;
|
||||||
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -393,8 +395,9 @@ chanrecvul(Channel *c)
|
||||||
{
|
{
|
||||||
ulong val;
|
ulong val;
|
||||||
|
|
||||||
_chanop(c, CHANRCV, &val, 1);
|
if(_chanop(c, CHANRCV, &val, 1) > 0)
|
||||||
return val;
|
return val;
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -408,7 +411,8 @@ channbrecvul(Channel *c)
|
||||||
{
|
{
|
||||||
ulong val;
|
ulong val;
|
||||||
|
|
||||||
_chanop(c, CHANRCV, &val, 0);
|
if(_chanop(c, CHANRCV, &val, 0) > 0)
|
||||||
return val;
|
return val;
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue