From ad999637d4262b09dbd705e82a637a82170431e9 Mon Sep 17 00:00:00 2001 From: "Alan T. DeKok" Date: Mon, 23 Jun 2014 17:02:29 -0400 Subject: [PATCH] Thread-safe VERIFY_REQUEST --- src/main/process.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/process.c b/src/main/process.c index a3aad00..71a3f37 100644 --- a/src/main/process.c +++ b/src/main/process.c @@ -109,6 +109,22 @@ static char const *child_state_names[REQUEST_CHILD_NUM_STATES] = { &when, &request->ev); +#ifdef HAVE_PTHREAD_H +#undef VERIFY_REQUEST + +#if defined(WITH_VERIFY_PTR) +# define VERIFY_REQUEST(_x) if (pthread_equal(pthread_self(), _x->child_pid) != 0) verify_request(__FILE__, __LINE__, _x) +#else +/* + * Even if were building without WITH_VERIFY_PTR + * the pointer must not be NULL when these various macros are used + * so we can add some sneaky asserts. + */ +# define VERIFY_REQUEST(_x) rad_assert(_x) +#endif + +#endif + /** * @section request_timeline -- 2.1.4