From: Robbie Harwood Date: Tue, 8 Aug 2017 22:24:32 +0000 (-0400) Subject: Log failure details for mutex errors X-Git-Tag: krb5-1.16-beta1~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70321d39b3043952f8567d95a36a22dfc74da1a8;p=thirdparty%2Fkrb5.git Log failure details for mutex errors Log only when assertions themselves are enabled in order to keep code small. --- diff --git a/src/include/k5-thread.h b/src/include/k5-thread.h index 3e3901d6e8..a3101239d8 100644 --- a/src/include/k5-thread.h +++ b/src/include/k5-thread.h @@ -134,6 +134,10 @@ More to be added, perhaps. */ #include +#ifndef NDEBUG +#include +#include +#endif /* The mutex structure we use, k5_mutex_t, is defined to some OS-specific bits. The use of multiple layers of typedefs are an @@ -363,12 +367,24 @@ static inline int k5_mutex_finish_init(k5_mutex_t *m) static inline void k5_mutex_lock(k5_mutex_t *m) { int r = k5_os_mutex_lock(m); +#ifndef NDEBUG + if (r != 0) { + fprintf(stderr, "k5_mutex_lock: Received error %d (%s)\n", + r, strerror(r)); + } +#endif assert(r == 0); } static inline void k5_mutex_unlock(k5_mutex_t *m) { int r = k5_os_mutex_unlock(m); +#ifndef NDEBUG + if (r != 0) { + fprintf(stderr, "k5_mutex_unlock: Received error %d (%s)\n", + r, strerror(r)); + } +#endif assert(r == 0); }