diff options
author | Jari Vetoniemi <mailroxas@gmail.com> | 2018-03-11 18:22:16 +0200 |
---|---|---|
committer | Jari Vetoniemi <mailroxas@gmail.com> | 2018-03-11 18:22:16 +0200 |
commit | f38c62e199adb377791e05452b10b55e40edb08a (patch) | |
tree | 2e505bec40747852b4c8fd27c74d1c5659583870 /src | |
parent | 3c82c28052cd138c1228065dacc019ba66ed664e (diff) |
verbose: Move implementation to wrapper.c
Static header implementation is not thread safe as mutex is of course
duplicated to each version...
Diffstat (limited to 'src')
-rw-r--r-- | src/wrapper/verbose.h | 25 | ||||
-rw-r--r-- | src/wrapper/wrapper.c | 16 |
2 files changed, 19 insertions, 22 deletions
diff --git a/src/wrapper/verbose.h b/src/wrapper/verbose.h index 3f54795..9a91906 100644 --- a/src/wrapper/verbose.h +++ b/src/wrapper/verbose.h @@ -1,27 +1,8 @@ #pragma once -#include <stdio.h> -#include <stdarg.h> -#include <pthread.h> - -#ifdef VERBOSE_FUNCTIONS -// Don't inline to get warnings from files that don't log at all -static void -#else -static inline void -#endif -verbose_log(const char *fmt, ...) -{ - static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - pthread_mutex_lock(&mutex); - fprintf(stderr, "%lu: ", pthread_self()); - va_list ap; - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - va_end(ap); - fputc('\n', stderr); - pthread_mutex_unlock(&mutex); -} +void +__attribute__((format(printf, 1, 2))) +verbose_log(const char *fmt, ...); #ifdef VERBOSE_FUNCTIONS # define verbose verbose_log diff --git a/src/wrapper/wrapper.c b/src/wrapper/wrapper.c index d7feff5..2d61519 100644 --- a/src/wrapper/wrapper.c +++ b/src/wrapper/wrapper.c @@ -1,5 +1,6 @@ #include "wrapper.h" #include <stdio.h> +#include <stdarg.h> #include <stdbool.h> #include <stdint.h> #include <stddef.h> @@ -9,6 +10,21 @@ #include <assert.h> #include <sys/mman.h> #include "verbose.h" +#include <pthread.h> + +void +verbose_log(const char *fmt, ...) +{ + static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; + pthread_mutex_lock(&mutex); + fprintf(stderr, "%lu: ", pthread_self()); + va_list ap; + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + fputc('\n', stderr); + pthread_mutex_unlock(&mutex); +} #ifdef VERBOSE_FUNCTIONS # ifdef ANDROID_X86_LINKER |