A process ID number. A value of 0 indicates any process.
Wait option WNOHANG or WUNTRACED.
One of three possibilities:
A list of four items:
The process ID.
The process exit status (WEXITSTATUS), or nil.
A termination signal (WTERMSIG) if the process exited due to a signal, or nil.
A stopped signal (WSTOPSIG) if the process stopped due to a signal, or nil.
t if the WNOHANG option had been set and there was a child with a status change.
nil if there was a failure due to error.
This function combines and simplifies the C functions wait and waitpid in a single function. If taskid is provided, then the function acts as waitpid, and will not return until the given child task has died.
The WNOHANG option allows the calling process to continue if the status of specified child process is not immediately available. The WUNTRACED option allows the calling process to return if the child process has stopped and its status has not been reported. Both of these can be specified using the OR (||) operator.
Process 1:
Gamma> child = fork();
9089
Gamma> 0
Gamma> if (child > 0) wait(); else exit_program(5);
Process 2:
Gamma> kill(9089,14);
t
Gamma>
Process 1:
(9089 nil 14 nil)
Gamma>
See the Handling Terminated Processes section of Common Functions for Any Program chapter in the Cogent Tools Demo and Tutorials book for an example of this function used in context.