detachpids(3Tcl)

Tcl_DetachPids, Tcl_ReapDetachedProcs - manage child processes in background

As shipped in IRIX 6.5.5. Unchanged since IRIX 6.5.

NAME
     Tcl_DetachPids, Tcl_ReapDetachedProcs - manage child processes in
     background

SYNOPSIS
     #include <tcl.h>

     Tcl_DetachPids(numPids, pidPtr)

     Tcl_ReapDetachedProcs()                                                  |

ARGUMENTS
     int   numPids      (in)      Number of process ids contained in the array
                                  pointed to by pidPtr.

     int   *pidPtr      (in)      Address of array containing numPids process
                                  ids.


DESCRIPTION
     Tcl_DetachPids and Tcl_ReapDetachedProcs provide a mechanism for managing|
     subprocesses that are running in background.  These procedures are needed|
     because the parent of a process must eventually invoke the waitpid kernel|
     call (or one of a few other similar kernel calls) to wait for the child  |
     to exit.  Until the parent waits for the child, the child's state cannot |
     be completely reclaimed by the system.  If a parent continually creates  |
     children and doesn't wait on them, the system's process table will       |
     eventually overflow, even if all the children have exited.               |

     Tcl_DetachPids may be called to ask Tcl to take responsibility for one or|
     more processes whose process ids are contained in the pidPtr array passed|
     as argument.  The caller presumably has started these processes running  |
     in background and doesn't want to have to deal with them again.          |

     Tcl_ReapDetachedProcs invokes the waitpid kernel call on each of the     |
     background processes so that its state can be cleaned up if it has       |
     exited.  If the process hasn't exited yet, Tcl_ReapDetachedProcs doesn't |
     wait for it to exit;  it will check again the next time it is invoked.   |
     Tcl automatically calls Tcl_ReapDetachedProcs each time the exec command |
     is executed, so in most cases it isn't necessary for any code outside of |
     Tcl to invoke Tcl_ReapDetachedProcs.  However, if you call Tcl_DetachPids|
     in situations where the exec command may never get executed, you may wish|
     to call Tcl_ReapDetachedProcs from time to time so that background       |
     processes can be cleaned up.


KEYWORDS
     background, child, detach, process, wait