• Ronald S. Bultje's avatar
    pthread_frame: call update_context_from_user() after acquiring lock. · 1269cd5b
    Ronald S. Bultje authored
    Otherwise the thread may still be in the middle of decoding a previous
    frame, which would effectively trigger a race condition on any field
    concurrently read and written.
    
    In practice, this fixes tsan warnings like the following:
    
    WARNING: ThreadSanitizer: data race (pid=17380)
      Write of size 4 at 0x7d64000160fc by main thread:
        #0 update_context_from_user src/libavcodec/pthread_frame.c:335 (ffmpeg+0x000000dca515)
    [..]
      Previous read of size 4 at 0x7d64000160fc by thread T2 (mutexes: write M1821):
        #0 ff_thread_report_progress src/libavcodec/pthread_frame.c:565 (ffmpeg+0x000000dcb08a)
    1269cd5b
pthread_frame.c 32 KB