Child.childWatchAddFull

Sets a function to be called when the child indicated by @pid exits, at the priority @priority.

If you obtain @pid from g_spawn_async() or g_spawn_async_with_pipes() you will need to pass #G_SPAWN_DO_NOT_REAP_CHILD as flag to the spawn function for the child watching to work.

In many programs, you will want to call g_spawn_check_exit_status() in the callback to determine whether or not the child exited successfully.

Also, note that on platforms where #GPid must be explicitly closed (see g_spawn_close_pid()) @pid must not be closed while the source is still active. Typically, you should invoke g_spawn_close_pid() in the callback function for the source.

GLib supports only a single callback per process id. On POSIX platforms, the same restrictions mentioned for g_child_watch_source_new() apply to this function.

This internally creates a main loop source using g_child_watch_source_new() and attaches it to the main loop context using g_source_attach(). You can do these steps manually if you need greater control.

struct Child
static
uint
childWatchAddFull
(,
GPid pid
,
GChildWatchFunc function_
,
void* data
,
GDestroyNotify notify
)

Parameters

priority int

the priority of the idle source. Typically this will be in the range between #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE.

pid GPid

process to watch. On POSIX the positive pid of a child process. On Windows a handle for a process (which doesn't have to be a child).

function_ GChildWatchFunc

function to call

data void*

data to pass to @function

notify GDestroyNotify

function to call when the idle is removed, or %NULL

Return Value

Type: uint

the ID (greater than 0) of the event source.

Meta