From 962dfd8bea0ddb2caa8a38785126c7f2b8b614ef Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Sun, 9 Sep 2012 17:36:14 +0200 Subject: [PATCH] eloop: fix registering post-cb hooks We actually have to register the hook-helper before we can add any hooks. Signed-off-by: David Herrmann --- src/eloop.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/eloop.c b/src/eloop.c index 82cbabf..08c2b7e 100644 --- a/src/eloop.c +++ b/src/eloop.c @@ -605,11 +605,15 @@ int ev_eloop_new(struct ev_eloop **out, ev_log_t log) if (ret) goto err_fds; + ret = kmscon_hook_new(&loop->posts); + if (ret) + goto err_idlers; + loop->efd = epoll_create1(EPOLL_CLOEXEC); if (loop->efd < 0) { ret = -errno; llog_error(loop, "cannot create epoll-fd"); - goto err_idlers; + goto err_posts; } ret = ev_fd_new(&loop->fd, loop->efd, EV_READABLE, eloop_event, loop, @@ -646,6 +650,8 @@ err_fd: ev_fd_unref(loop->fd); err_close: close(loop->efd); +err_posts: + kmscon_hook_free(loop->posts); err_idlers: kmscon_hook_free(loop->idlers); err_fds: @@ -707,6 +713,7 @@ void ev_eloop_unref(struct ev_eloop *loop) ev_fd_unref(loop->fd); close(loop->efd); + kmscon_hook_free(loop->posts); kmscon_hook_free(loop->idlers); free(loop->cur_fds); free(loop);