Children management

Children management — Children management in Anjuta

Stability Level

Unstable, unless otherwise indicated

Synopsis




void        (*AnjutaChildTerminatedCallback)
                                            (int exit_staus,
                                             gpointer user_data);
void        anjuta_children_register        (pid_t pid,
                                             AnjutaChildTerminatedCallback ch_terminated,
                                             gpointer data);
void        anjuta_children_unregister      (pid_t pid);
void        anjuta_children_foreach         (GFunc cb,
                                             gpointer data);
void        anjuta_children_recover         (void);
void        anjuta_children_finalize        (void);

Description

All child processes in anjuta are registred using API here. SIGCHLD should never be used directly. Use anjuta_children_register() or anjuta_children_unregister() to register or unregister a child process. Notifications are sent if callback function is given in anjuta_children_register(), which can be used in lieu of hooking SIGCHLD signal.

plugin developers should not bother about anjuta_children_init() and anjuta_children_finalize() functions. They are only for the shell implementor.

Details

AnjutaChildTerminatedCallback ()

void        (*AnjutaChildTerminatedCallback)
                                            (int exit_staus,
                                             gpointer user_data);

Callback function definition for child termination.

exit_staus :

Exit status of the child.

user_data :

User data

anjuta_children_register ()

void        anjuta_children_register        (pid_t pid,
                                             AnjutaChildTerminatedCallback ch_terminated,
                                             gpointer data);

Registers a child process with the manager. ch_terminated will be called when the child terminates. DO NOT use SIGCHLD directly, otherwise whole children management will fail.

pid :

Process ID of the child (usually the value retured by fork or similar system calls.

ch_terminated :

Callback function which will be called when this child exits. The callback should be defined as the type AnjutaChildTerminatedCallback.

data :

User data.

anjuta_children_unregister ()

void        anjuta_children_unregister      (pid_t pid);

Unregisters the child process (It should have been registred before with #anjuta_children_register() call). No child terminated callback will be executed for this child.

pid :

Process ID of the child.

anjuta_children_foreach ()

void        anjuta_children_foreach         (GFunc cb,
                                             gpointer data);

Calls the given callback function with the data for each child registered, that have not yet been terminated.

cb :

Callback function.

data :

User data.

anjuta_children_recover ()

void        anjuta_children_recover         (void);

Recovers child management signaling.


anjuta_children_finalize ()

void        anjuta_children_finalize        (void);

Shuts down the children management. Usually not required to call, if you you are anyway exiting the program.