## VteReaper VteReaper — A singleton object which catches `SIGCHLD` signals and converts them into GObject-style "child-exited" signals. |

## Synopsis

                        VteReaper;
    VteReaper*          vte_reaper_get                      (void);
    int                 vte_reaper_add_child                (GPid pid);

## Object Hierarchy

      GObject
       +----VteReaper

## Signals

      "child-exited"                                   : Run Last

## Description

Because an application may need to be notified when child processes exit, and because there is only one `SIGCHLD` handler, the VteTerminal widget relies on a VteReaper to watch for `SIGCHLD` notifications and retrieve the exit status of child processes which have exited. When glib provides child_watch functionality, the VteReaper merely acts as a proxy for glib's own functionality.

## Details

### VteReaper

    typedef struct _VteReaper VteReaper;

This should not be accessed directly.

### vte_reaper_get ()

    VteReaper*          vte_reaper_get                      (void);

Finds the address of the global VteReaper object, creating the object if necessary.

Returns : | the global VteReaper object, which should not be unreffed.

### vte_reaper_add_child ()

    int                 vte_reaper_add_child                (GPid pid);

Ensures that child-exited signals will be emitted when `pid` exits. This is necessary for correct operation when running with glib versions >= 2.4.

`pid` : | the ID of a child process which will be monitored
Returns : | the new source ID Since 0.11.11

## Signal Details

### The "child-exited" signal

    void                user_function                      (VteReaper *vtereaper,
                                                            gint       arg1,
                                                            gint       arg2,
                                                            gpointer   user_data)      : Run Last

Emitted when the VteReaper object detects that a child of the current process has exited.

`vtereaper` : | the object which received the signal.
`arg1` : | the process ID of the exited child.
`arg2` : | the status of the exited child, as returned by `waitpid()`.
`user_data` : | user data set when the signal handler was connected.