From: José Bollo Date: Wed, 1 Nov 2017 12:32:44 +0000 (+0100) Subject: verbose: Ensure mutual exclusion when logging X-Git-Tag: eel_4.99.2~3 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-binder.git;a=commitdiff_plain;h=e47e5c8339c3496015f667b7f71a6d673807141d verbose: Ensure mutual exclusion when logging Change-Id: I3ccc2ba35ee8db3d62eb229c736e65b2305184e3 Signed-off-by: José Bollo --- diff --git a/src/verbose.c b/src/verbose.c index f330c6f5..e96627ed 100644 --- a/src/verbose.c +++ b/src/verbose.c @@ -85,6 +85,7 @@ void verbose_set_name(const char *name, int authority) #include #include #include +#include static const char *appname; @@ -105,6 +106,8 @@ static int tty; static const char chars[] = { '\n', '?', ':', ' ', '[', ',', ']' }; +static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; + static void _vverbose_(int loglevel, const char *file, int line, const char *function, const char *fmt, va_list args) { char buffer[4000]; @@ -169,7 +172,9 @@ static void _vverbose_(int loglevel, const char *file, int line, const char *fun iov[n].iov_base = (void*)&chars[0]; iov[n++].iov_len = 1; + pthread_mutex_lock(&mutex); writev(STDERR_FILENO, iov, n); + pthread_mutex_unlock(&mutex); errno = saverr; }