• Wan-Teh Chang's avatar
    pthread_frame: save the FF_DEBUG_THREADS option in PerThreadContext. · 15c41cb6
    Wan-Teh Chang authored
    Add the debug_threads boolean field to PerThreadContext. For
    PerThreadContext *p, p->debug_threads records whether the
    FF_DEBUG_THREADS bit is set in p->avctx->debug, and p->debug_threads and
    p->avctx->debug are kept in sync. The debug_threads field is defined as
    an atomic_int to allow atomic read by another thread in
    ff_thread_await_progress().
    
    This fixes the tsan warning that
    2e664b9c attempted to fix:
    
    WARNING: ThreadSanitizer: data race (pid=452658)
      Write of size 4 at 0x7b640003f4fc by main thread (mutexes: write M248499):
        #0 update_context_from_user [..]/libavcodec/pthread_frame.c:335:19 (5ab42bb1a6f4b068d7863dabe9b2bacc+0xe73859)
    [..]
      Previous read of size 4 at 0x7b640003f4fc by thread T130 (mutexes: write M248502, write M248500):
        #0 ff_thread_await_progress [..]/libavcodec/pthread_frame.c:591:26 (5ab42bb1a6f4b068d7863dabe9b2bacc+0xe749a1)
    Signed-off-by: 's avatarWan-Teh Chang <wtc@google.com>
    Signed-off-by: 's avatarRonald S. Bultje <rsbultje@gmail.com>
    15c41cb6
pthread_frame.c 32.6 KB