[FFmpeg-devel] [PATCH 2/2] avutil/log: use thread wrappers for the locking functionality

James Almer jamrial at gmail.com
Thu Jan 4 20:23:22 EET 2018


On 1/4/2018 7:50 AM, wm4 wrote:
> On Thu,  4 Jan 2018 01:14:08 -0300
> James Almer <jamrial at gmail.com> wrote:
> 
>> w32threads and os2threads both support static mutex initialization now,
>> so don't limit it to pthreads only.
>>
>> Signed-off-by: James Almer <jamrial at gmail.com>
>> ---
>>  libavutil/log.c | 14 ++++----------
>>  1 file changed, 4 insertions(+), 10 deletions(-)
>>
>> diff --git a/libavutil/log.c b/libavutil/log.c
>> index 7a6dd936e5..bd47f2a25f 100644
>> --- a/libavutil/log.c
>> +++ b/libavutil/log.c
>> @@ -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) =
> 
> LGTM

Pushed.


More information about the ffmpeg-devel mailing list