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