• 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
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
ffbuild Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libpostproc Loading commit data...
libswresample Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL.md Loading commit data...
LICENSE.md Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
cmdutils.c Loading commit data...
cmdutils.h Loading commit data...
cmdutils_opencl.c Loading commit data...
configure Loading commit data...
ffmpeg.c Loading commit data...
ffmpeg.h Loading commit data...
ffmpeg_cuvid.c Loading commit data...
ffmpeg_filter.c Loading commit data...
ffmpeg_hw.c Loading commit data...
ffmpeg_opt.c Loading commit data...
ffmpeg_qsv.c Loading commit data...
ffmpeg_videotoolbox.c Loading commit data...
ffplay.c Loading commit data...
ffprobe.c Loading commit data...
ffserver.c Loading commit data...
ffserver_config.c Loading commit data...
ffserver_config.h Loading commit data...