From 926121113b903bf7b6133f782c84d0ed6c1a1a58 Mon Sep 17 00:00:00 2001 From: Karl Vogel Date: Tue, 11 Feb 2014 09:37:08 +0100 Subject: uloop: Add flag to allow callback to be called on error conditions. In some conditions, an application is interested in errors happening on a file descriptor and might be able to resolve the issue in the callback function. This patch adds a flag to notify the uloop framework that errors should be passed to the callback function, instead of silently removing the fd from the polling set. Signed-off-by: Karl Vogel --- uloop.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'uloop.c') diff --git a/uloop.c b/uloop.c index 0566d80..d293edb 100644 --- a/uloop.c +++ b/uloop.c @@ -174,7 +174,8 @@ static int uloop_fetch_events(int timeout) if (events[n].flags & EV_ERROR) { u->error = true; - uloop_fd_delete(u); + if (!(u->flags & ULOOP_ERROR_CB)) + uloop_fd_delete(u); } if(events[n].filter == EVFILT_READ) @@ -268,7 +269,8 @@ static int uloop_fetch_events(int timeout) if (events[n].events & (EPOLLERR|EPOLLHUP)) { u->error = true; - uloop_fd_delete(u); + if (!(u->flags & ULOOP_ERROR_CB)) + uloop_fd_delete(u); } if(!(events[n].events & (EPOLLRDHUP|EPOLLIN|EPOLLOUT|EPOLLERR|EPOLLHUP))) { -- cgit v1.2.3