1/* 2 * Define a custom assert() in order to reduce the chances of deadlock during 3 * assertion failure. 4 */ 5#ifndef assert 6#define assert(e) do { \ 7 if (unlikely(config_debug && !(e))) { \ 8 malloc_printf( \ 9 "<jemalloc>: %s:%d: Failed assertion: \"%s\"\n", \ 10 __FILE__, __LINE__, #e); \ 11 abort(); \ 12 } \ 13} while (0) 14#endif 15 16#ifndef not_reached 17#define not_reached() do { \ 18 if (config_debug) { \ 19 malloc_printf( \ 20 "<jemalloc>: %s:%d: Unreachable code reached\n", \ 21 __FILE__, __LINE__); \ 22 abort(); \ 23 } \ 24 unreachable(); \ 25} while (0) 26#endif 27 28#ifndef not_implemented 29#define not_implemented() do { \ 30 if (config_debug) { \ 31 malloc_printf("<jemalloc>: %s:%d: Not implemented\n", \ 32 __FILE__, __LINE__); \ 33 abort(); \ 34 } \ 35} while (0) 36#endif 37 38#ifndef assert_not_implemented 39#define assert_not_implemented(e) do { \ 40 if (unlikely(config_debug && !(e))) \ 41 not_implemented(); \ 42} while (0) 43#endif 44 45 46