diff options
Diffstat (limited to 'src/util.h')
-rw-r--r-- | src/util.h | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -28,6 +28,7 @@ #include <stdbool.h> #include <string.h> #include <sys/time.h> +#include <errno.h> #define MILLION ((uint64_t)1000000) @@ -76,6 +77,19 @@ } \ } while (0) +static inline int PERF_TRYLOCK(pthread_mutex_t* mutex) +{ + int __n = pthread_mutex_trylock(mutex); + if (__n == EBUSY) { + return 1; + } + if (__n != 0) { + char __s[256]; + perf_log_fatal("pthread_mutex_lock failed: %s", perf_strerror_r(__n, __s, sizeof(__s))); + } + return 0; +} + #define PERF_UNLOCK(mutex) \ do { \ int __n = pthread_mutex_unlock((mutex)); \ |