sd-event: introduce event_free_signal_data()
We already have event_free_inotify_data() and event_free_inode_data().
This commit is contained in:
committed by
Lennart Poettering
parent
37b8602fb8
commit
3e4eb8e73d
@@ -470,6 +470,17 @@ static struct clock_data* event_get_clock_data(sd_event *e, EventSourceType t) {
|
||||
}
|
||||
}
|
||||
|
||||
static void event_free_signal_data(sd_event *e, struct signal_data *d) {
|
||||
assert(e);
|
||||
|
||||
if (!d)
|
||||
return;
|
||||
|
||||
hashmap_remove(e->signal_data, &d->priority);
|
||||
safe_close(d->fd);
|
||||
free(d);
|
||||
}
|
||||
|
||||
static int event_make_signal_data(
|
||||
sd_event *e,
|
||||
int sig,
|
||||
@@ -559,11 +570,8 @@ static int event_make_signal_data(
|
||||
return 0;
|
||||
|
||||
fail:
|
||||
if (added) {
|
||||
d->fd = safe_close(d->fd);
|
||||
hashmap_remove(e->signal_data, &d->priority);
|
||||
free(d);
|
||||
}
|
||||
if (added)
|
||||
event_free_signal_data(e, d);
|
||||
|
||||
return r;
|
||||
}
|
||||
@@ -582,11 +590,8 @@ static void event_unmask_signal_data(sd_event *e, struct signal_data *d, int sig
|
||||
assert_se(sigdelset(&d->sigset, sig) >= 0);
|
||||
|
||||
if (sigisemptyset(&d->sigset)) {
|
||||
|
||||
/* If all the mask is all-zero we can get rid of the structure */
|
||||
hashmap_remove(e->signal_data, &d->priority);
|
||||
safe_close(d->fd);
|
||||
free(d);
|
||||
event_free_signal_data(e, d);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user