reaper: add reaper_del() - pid is no longer watched/monitored after this

This commit is contained in:
Daniel Eklöf 2021-01-12 09:20:02 +01:00
parent dce402ae42
commit c83cc7f862
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 12 additions and 0 deletions

View file

@ -98,6 +98,17 @@ reaper_add(struct reaper *reaper, pid_t pid, reaper_cb cb, void *cb_data)
((struct child){.pid = pid, .cb = cb, .cb_data = cb_data}));
}
void
reaper_del(struct reaper *reaper, pid_t pid)
{
tll_foreach(reaper->children, it) {
if (it->item.pid == pid) {
tll_remove(reaper->children, it);
break;
}
}
}
static bool
fdm_reap(struct fdm *fdm, int fd, int events, void *data)
{

View file

@ -13,3 +13,4 @@ void reaper_destroy(struct reaper *reaper);
typedef bool (*reaper_cb)(struct reaper *reaper, pid_t pid, void *data);
void reaper_add(struct reaper *reaper, pid_t pid, reaper_cb cb, void *cb_data);
void reaper_del(struct reaper *reaper, pid_t pid);