avutil/log: use thread wrappers for the locking functionality

w32threads and os2threads both support static mutex initialization now,
so don't limit it to pthreads only.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2018-01-04 01:11:43 -03:00
parent 414a49d671
commit 8d9c9775b2

View File

@ -39,11 +39,9 @@
#include "common.h"
#include "internal.h"
#include "log.h"
#include "thread.h"
#if HAVE_PTHREADS
#include <pthread.h>
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
#endif
static AVMutex mutex = AV_MUTEX_INITIALIZER;
#define LINE_SZ 1024
@ -317,9 +315,7 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
if (level > av_log_level)
return;
#if HAVE_PTHREADS
pthread_mutex_lock(&mutex);
#endif
ff_mutex_lock(&mutex);
format_line(ptr, level, fmt, vl, part, &print_prefix, type);
snprintf(line, sizeof(line), "%s%s%s%s", part[0].str, part[1].str, part[2].str, part[3].str);
@ -356,9 +352,7 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
#endif
end:
av_bprint_finalize(part+3, NULL);
#if HAVE_PTHREADS
pthread_mutex_unlock(&mutex);
#endif
ff_mutex_unlock(&mutex);
}
static void (*av_log_callback)(void*, int, const char*, va_list) =