waitPID

Command: waitPID


Description
The waitPID function suspends execution of the calling process
until status information for the given child is available
or until delivery of a signal whose action is either to
execute a signal-catching function or to terminate the
process. If status information is available prior to the call
to waitPID it returns immediately.

The waitPID function returns the process ID of the child for
which status is being reported.
Zero is returned immediately if the NoHangFlag is set
and no status is available.

Alternatives: Function waitPID_i_b (undocumented)
-> behaviour and synopsis are the same.

Parameters
In : PIDin(integer): -1: Wait for any child process.
positive: Wait for the specific child whose
process ID is equal to PIDin.
( 0: -not supported-)
(less than -1: -not supported-)

NoHangFlag(boolean):
If true causes waitPID function not to suspend execution
of the calling process if status is not immediately
available for any of the child processes specified by
PIDin. In this case zero is returned as only result.

Out: PIDout(integer):
The process ID of the child for which status is being
reported.

NormalExitFlag(boolean):
True if status is returned for a child that terminated
normally i.e. by a call to exit() or by returning from
main(). In that case the exit code is reported in the Status
argument (see below).
False if status is returned for a child that terminated due
to a signal that was not caught. In that case the number of
that signal is reported in the Status argument (see below).

Status(integer):
If NormalExitFlag is true this reports the child's exit code
i.e. the low-order eight bits of the status argument that the
child passed to exit() or the value the child process
returned from main().
If NormalExitFlag is false this reports the number of the
signal that caused the termination of the child process. Look
up this number in signaldict to know what it means.

Examples:1. {(sleep 3) sysexec} spoon false waitPID
2. {(ls) sysexec} spoon false waitPID
Note the parent process' SLI-Prompt appearing AFTER execution of the
command finished.
This is different to the call "{(ls) sysexec} spoon" only.
3. 23 false waitPID

Author
R Kupper

Bugs
-

Synopsis
PIDin NoHangFlag waitPID -> Status NormalExitFlag PIDout
-> 0

File
sli/processes.h
Remarks
The features normally used only by the UNIX-shell-program
(such as the WUNTRACED-option) are currently not supported
although values <=0 can be passed through PIDin.
See any documentation of POSIX-function waitpid().
Discription text is mainly taken from
Donald A. Lewine "POSIX programmer's guide" O'Reilly&Associates Inc.

FirstVersion