allow rfork(RFNOTEG|RFPROC|RFFDG) for rc.
This commit is contained in:
parent
683c5e534a
commit
1c8efa18ee
2 changed files with 19 additions and 3 deletions
|
|
@ -50,7 +50,6 @@ countde(char *p, int n)
|
|||
de->d_name[0] = 0;
|
||||
else if(de->d_name[0]=='.' && de->d_name[1]=='.' && de->d_name[2]==0)
|
||||
de->d_name[0] = 0;
|
||||
else
|
||||
m++;
|
||||
p += de->d_reclen;
|
||||
}
|
||||
|
|
@ -78,9 +77,12 @@ dirpackage(int fd, char *buf, int n, Dir **dp)
|
|||
|
||||
p = buf;
|
||||
nstr = 0;
|
||||
|
||||
for(i=0; i<n; i++){
|
||||
de = (struct dirent*)p;
|
||||
if(stat(de->d_name, &st) < 0)
|
||||
if(de->d_name[0] == 0)
|
||||
/* nothing */ {}
|
||||
else if(stat(de->d_name, &st) < 0)
|
||||
de->d_name[0] = 0;
|
||||
else
|
||||
nstr += _p9dir(&st, de->d_name, nil, nil, nil);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,20 @@
|
|||
int
|
||||
p9rfork(int flags)
|
||||
{
|
||||
int pid;
|
||||
|
||||
if((flags&(RFPROC|RFFDG|RFMEM)) == (RFPROC|RFFDG)){
|
||||
/* check other flags before we commit */
|
||||
flags &= ~(RFPROC|RFFDG);
|
||||
if(flags & ~(RFNOTEG)){
|
||||
werrstr("unknown flags %08ux in rfork", flags);
|
||||
return -1;
|
||||
}
|
||||
pid = fork();
|
||||
if(pid != 0)
|
||||
return pid;
|
||||
}
|
||||
|
||||
if(flags&RFPROC){
|
||||
werrstr("cannot use rfork to fork -- use ffork");
|
||||
return -1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue