• Ronald S. Bultje's avatar
    pthread_frame: make accesses to debug field be protected by owner lock. · 2e664b9c
    Ronald S. Bultje authored
    The av_log() is done outside the lock, but this way the accesses to the
    field (reads and writes) are always protected by a mutex. The av_log()
    is not run inside the lock context because it may involve user callbacks
    and doing that in performance-sensitive code is probably not a good idea.
    
    This should fix occasional tsan warnings when running fate-h264, like:
    
    WARNING: ThreadSanitizer: data race (pid=10916)
      Write of size 4 at 0x7d64000174fc by main thread (mutexes: write M2313):
        #0 update_context_from_user src/libavcodec/pthread_frame.c:335 (ffmpeg+0x000000df7b06)
    [..]
      Previous read of size 4 at 0x7d64000174fc by thread T1 (mutexes: write M2311):
        #0 ff_thread_await_progress src/libavcodec/pthread_frame.c:592 (ffmpeg+0x000000df8b3e)
    2e664b9c
pthread_frame.c 32.2 KB