11/3/71 SYS WAIT (II)
NAME wait -- wait for process to die
SYNOPSIS sys wait / wait = 7.
(process ID in r0)
DESCRIPTION wait causes its caller to delay until one of its
child processes terminates. If any child has al-
ready died, return is immediate; if there are no
children, return is immediate with the error bit
set. In the case of several children several
waits are needed to learn of all the deaths.
FILES --
SEE ALSO fork
DIAGNOSTICS error bit (c-bit) on if no children not previ-
ously waited for.
BUGS A child which dies but is never waited for is not
really gone in that it still consumes disk swap
and system table space. This can make it impos-
sible to create new processes. The bug can be
noticed when several "&" separators are given to
the shell not followed by a command without an
ampersand. Ordinarily things clean themselves up
when an ordinary command is typed, but is possi-
ble to get into a situation in which no commands
are accepted, so no waits are done; the system is
then hung.
The fix, probably, is to have a new kind of fork
which creates a process for which no wait is nec-
essary (or possible); also to limit the number of
active or inactive descendants allowed to a pro-
cess.
OWNER ken, dmr