diff options
-rw-r--r-- | wayland/event-loop.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/wayland/event-loop.c b/wayland/event-loop.c index afdb1d8..8708571 100644 --- a/wayland/event-loop.c +++ b/wayland/event-loop.c @@ -265,13 +265,10 @@ wl_event_source_signal_remove(struct wl_event_source *source) { struct wl_event_source_signal *signal_source = (struct wl_event_source_signal *) source; - struct wl_event_loop *loop = source->loop; - int fd; - fd = signal_source->fd; + close(signal_source->fd); free(source); - - return epoll_ctl(loop->epoll_fd, EPOLL_CTL_DEL, fd, NULL); + return 0; } struct wl_event_source_interface signal_source_interface = { @@ -315,6 +312,7 @@ wl_event_loop_add_signal(struct wl_event_loop *loop, ep.data.ptr = source; if (epoll_ctl(loop->epoll_fd, EPOLL_CTL_ADD, source->fd, &ep) < 0) { + close(source->fd); free(source); return NULL; } |