#ifndef __WORKER_UTIL_H__ #define __WORKER_UTIL_H__ extern int debug_level; void debug_fn(const char *format, ...); #define DEBUG(level, body) do { \ if (level <= debug_level) { \ debug_fn("DEBUG-%d (%s,%d): %s: ", level, __FILE__, __LINE__ , __FUNCTION__); \ debug_fn body; \ } \ } while(0) #define CHECK(pointer, val, message, action) do { \ if (pointer == (val)) { \ DEBUG(0, message); \ action; \ } \ } while(0) #define CHECK_NULL_FATAL(pointer, message) do { \ if (pointer == NULL) { \ DEBUG(0, message); \ exit(1); \ } \ } while(0) #define CHECK_NULL_RETURN(pointer, message) do { \ if (pointer == NULL) { \ DEBUG(0, message); \ return(-1); \ } \ } while(0) #define CHECK_MINUS_ONE_RETURN(pointer, message) do { \ if (pointer == -1) { \ DEBUG(0, message); \ return(-1); \ } \ } while(0) #endif /* __WORKER_UTIL_H__ */