Go to the documentation of this file. 5 #ifndef __EVHTP_INTERNAL_H__ 6 #define __EVHTP_INTERNAL_H__ 13 #if defined __GNUC__ || defined __llvm__ 14 # define evhtp_likely(x) __builtin_expect(!!(x), 1) 15 # define evhtp_unlikely(x) __builtin_expect(!!(x), 0) 17 # define evhtp_likely(x) (x) 18 # define evhtp_unlikely(x) (x) 21 #ifndef TAILQ_FOREACH_SAFE 22 #define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ 23 for ((var) = TAILQ_FIRST((head)); \ 24 (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ 28 #define evhtp_safe_free(_var, _freefn) do { \ 34 #define evhtp_assert(x) \ 36 if (evhtp_unlikely(!(x))) { \ 37 fprintf(stderr, "Assertion failed: %s (%s:%s:%d)\n", # x, \ 38 __func__, __FILE__, __LINE__); \ 44 #define evhtp_alloc_assert(x) \ 46 if (evhtp_unlikely(!x)) { \ 47 fprintf(stderr, "Out of memory (%s:%s:%d)\n", \ 48 __func__, __FILE__, __LINE__); \ 54 #define evhtp_assert_fmt(x, fmt, ...) \ 56 if (evhtp_unlikely(!(x))) { \ 57 fprintf(stderr, "Assertion failed: %s (%s:%s:%d) " fmt "\n", \ 58 # x, __func__, __FILE__, __LINE__, __VA_ARGS__); \ 64 #define evhtp_errno_assert(x) \ 66 if (evhtp_unlikely(!(x))) { \ 67 fprintf(stderr, "%s [%d] (%s:%s:%d)\n", \ 68 strerror(errno), errno, \ 69 __func__, __FILE__, __LINE__); \