---
name: "tickit_watch_process"
section: "3"
platform: "linux"
package: "libtickit-dev"
version: "0.4.3-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/tickit_watch_process"
---

# tickit\_watch\_process(3)

invoke a callback when a child process terminates

## NAME

tickit\_watch\_process - invoke a callback when a child process terminates

## SYNOPSIS

```
#include <tickit.h>

typedef struct {
  pid_t pid;
  int wstatus;
} TickitProcessWatchInfo;

typedef int TickitCallbackFn(Tickit *t, TickitEventflags flags,
    void *info, void *user);

void *tickit_watch_process(Tickit *t, pid_t pid, TickitBindFlags flags,
    TickitCallbackFn *fn, void *user);
```

Link with *-ltickit*.

## DESCRIPTION

**tickit\_watch\_process**() registers a callback function to be invoked by the toplevel event loop when a child process terminates. A registered callback will be invoked by a running call to [**tickit\_run**(3)](/tickit_run/3.md). The *info* pointer will point to a structure containing the process PID and exit status.

If registered with the **TICKIT\_BIND\_FIRST** flag, the callback will be inserted at the start of the queue, coming before others. If not, it is appended at the end.

If cancelled by [**tickit\_watch\_cancel**(3)](/tickit_watch_cancel/3.md) the callback function is invoked with just the **TICKIT\_EV\_UNBIND** flag if it had been registered with **TICKIT\_BIND\_UNBIND**.

## RETURN VALUE

**tickit\_watch\_process**() returns an opaque identifier pointer.

## SEE ALSO

[**tickit\_new\_stdio**(3)](/tickit_new_stdio/3.md), [**tickit\_watch\_io**(3)](/tickit_watch_io/3.md), [**tickit\_watch\_timer\_after\_msec**(3)](/tickit_watch_timer_after_msec/3.md), [**tickit\_watch\_timer\_at\_epoch**(3)](/tickit_watch_timer_at_epoch/3.md), [**tickit\_watch\_later**(3)](/tickit_watch_later/3.md), [**tickit\_watch\_signal**(3)](/tickit_watch_signal/3.md), [**tickit\_watch\_cancel**(3)](/tickit_watch_cancel/3.md), [**tickit**(7)](/tickit/7.md)
