add RFENVG, RFCENVG
This commit is contained in:
parent
00d75e0eae
commit
e4d832222b
1 changed files with 7 additions and 3 deletions
|
|
@ -15,13 +15,14 @@ p9rfork(int flags)
|
||||||
{
|
{
|
||||||
int pid, status;
|
int pid, status;
|
||||||
int p[2];
|
int p[2];
|
||||||
int n;
|
int i, n;
|
||||||
char buf[128], *q;
|
char buf[128], *q;
|
||||||
|
extern char **environ;
|
||||||
|
|
||||||
if((flags&(RFPROC|RFFDG|RFMEM)) == (RFPROC|RFFDG)){
|
if((flags&(RFPROC|RFFDG|RFMEM)) == (RFPROC|RFFDG)){
|
||||||
/* check other flags before we commit */
|
/* check other flags before we commit */
|
||||||
flags &= ~(RFPROC|RFFDG);
|
flags &= ~(RFPROC|RFFDG|RFENVG);
|
||||||
n = (flags & ~(RFNOTEG|RFNAMEG|RFNOWAIT));
|
n = (flags & ~(RFNOTEG|RFNAMEG|RFNOWAIT|RFCENVG));
|
||||||
if(n){
|
if(n){
|
||||||
werrstr("unknown flags %08ux in rfork", n);
|
werrstr("unknown flags %08ux in rfork", n);
|
||||||
return -1;
|
return -1;
|
||||||
|
|
@ -99,6 +100,9 @@ p9rfork(int flags)
|
||||||
}
|
}
|
||||||
if(pid != 0)
|
if(pid != 0)
|
||||||
return pid;
|
return pid;
|
||||||
|
if(flags&RFCENVG)
|
||||||
|
if(environ)
|
||||||
|
*environ = nil;
|
||||||
}
|
}
|
||||||
if(flags&RFPROC){
|
if(flags&RFPROC){
|
||||||
werrstr("cannot use rfork for shared memory -- use libthread");
|
werrstr("cannot use rfork for shared memory -- use libthread");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue