add_full
Description:
public uint add_full (int priority, Pid pid, owned ChildWatchFunc function)
Sets a function to be called when the child indicated by pid
exits, at the priority priority
.
If you obtain pid
from spawn_async or
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 check_wait_status in the callback to determine whether or not the child exited successfully.
Also, note that on platforms where Pid must be explicitly closed (see
close_pid) pid
must not be closed while the source is still
active. Typically, you should invoke 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 ChildWatchSource apply to this function.
This internally creates a main loop source using ChildWatchSource and attaches it to the main loop context using attach. You can do these steps manually if you need greater control.
Parameters:
priority |
the priority of the idle source. Typically this will be in the range between g_priority_default_idle and g_priority_high_idle. |
pid |
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 |
function to call |
data |
data to pass to |
notify |
function to call when the idle is removed, or null |
Returns:
the ID (greater than 0) of the event source. |