Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Tcl_DetachPids(3)	    Tcl	Library	Procedures	     Tcl_DetachPids(3)


       Tcl_DetachPids,	Tcl_ReapDetachedProcs, Tcl_WaitPid - manage child pro-
       cesses in background

       #include	<tcl.h>

       Tcl_DetachPids(numPids, pidPtr)


       Tcl_WaitPid(pid,	statusPtr, options)

       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.

       Tcl_Pid pid (in)			The id of the process (pipe)  to  wait

       int *statusPtr (out)		The  result  of	 waiting  on a process
					(pipe).	Either 0 or ECHILD.

       int options (in)			The options controlling	the wait. WNO-
					HANG specifies not to wait when	check-
					ing the	process.

       Tcl_DetachPids and Tcl_ReapDetachedProcs	provide	a mechanism for	manag-
       ing  subprocesses that are running in background.  These	procedures are
       needed because the parent of a process must eventually invoke the wait-
       pid  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 par-
       ent continually creates children	and doesn't wait on them, the system's
       process	table  will eventually overflow, even if all the children have

       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  does  not	want to	have to	deal with them

       Tcl_ReapDetachedProcs invokes the waitpid kernel	call on	 each  of  the
       background  processes so	that its state can be cleaned up if it has ex-
       ited.  If the process has not exited  yet,  Tcl_ReapDetachedProcs  does
       not  wait  for it to exit;  it will check again the next	time it	is in-
       voked.  Tcl automatically calls	Tcl_ReapDetachedProcs  each  time  the
       exec  command is	executed, so in	most cases it is not 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.

       Tcl_WaitPid is a	thin wrapper around the	facilities provided by the op-
       erating system to wait on the end of a spawned process and to  check  a
       whether	spawned	 process  is  still running. It	is used	by Tcl_ReapDe-
       tachedProcs and the channel system to  portably	access	the  operating

       background, child, detach, process, wait

Tcl							     Tcl_DetachPids(3)


Want to link to this manual page? Use this URL:

home | help