> static int
> reap(Dest *dp)
> {
>       char exitsts[2*ERRMAX];
> +     int n;
> -     if (outstandingprocs(dp) && await(exitsts, sizeof exitsts) >= 0) {
> +     if (outstandingprocs(dp) && (n = await(exitsts, sizeof exitsts-1)) >= 
> 0) {
> +             exitsts[n] = 0;
>               notedeath(dp, exitsts);
>               return 0;
>       }
>       return -1;
> }
>
> probably 2*ERRMAX is enough for await().
> 
> I wonder why await() returns non-terminated string?
> 

a better solution is to just use waitmsg (see wait(2)).  the parsing rules and 
sizing are
already implemented there.

- erik

Reply via email to