sd-event: make errors on EPOLL_CTL_DEL pseudo-fatal

If we call EPOLL_CTL_DEL, we *REALLY* expect the file-descriptor to be
present in that given epoll-set. We actually track such state via our
s->io.registered flag, so it better be true.

Make sure if that's not true, we treat it similar to assert_return() (ie.,
print a loud warning).
This commit is contained in:
David Herrmann
2015-06-17 09:13:48 +02:00
parent 3eb3228e58
commit 366e641139
2 changed files with 11 additions and 15 deletions
+6 -5
View File
@@ -248,18 +248,19 @@ static inline unsigned long ALIGN_POWER2(unsigned long u) {
REENABLE_WARNING
#endif
#define assert_log(expr) ((_likely_(expr)) \
? (true) \
: (log_assert_failed_return(#expr, __FILE__, __LINE__, __PRETTY_FUNCTION__), false))
#define assert_return(expr, r) \
do { \
if (_unlikely_(!(expr))) { \
log_assert_failed_return(#expr, __FILE__, __LINE__, __PRETTY_FUNCTION__); \
if (!assert_log(expr)) \
return (r); \
} \
} while (false)
#define assert_return_errno(expr, r, err) \
do { \
if (_unlikely_(!(expr))) { \
log_assert_failed_return(#expr, __FILE__, __LINE__, __PRETTY_FUNCTION__); \
if (!assert_log(expr)) { \
errno = err; \
return (r); \
} \