diff options
author | Wan-Teh Chang <wtc-at-google.com@ffmpeg.org> | 2016-12-06 18:16:13 -0800 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2016-12-13 00:07:20 +0100 |
commit | fed50c4304eecb352e29ce789cdb96ea84d6162f (patch) | |
tree | 2514d8429a6926deb5a056b7417a747c0431c7d1 /libavcodec/qpel_template.c | |
parent | 4cf3def805cf522ddd9c24c24ef1246b008bac2c (diff) | |
download | ffmpeg-fed50c4304eecb352e29ce789cdb96ea84d6162f.tar.gz |
avutil: fix data race in av_get_cpu_flags()
Make the one-time initialization in av_get_cpu_flags() thread-safe. The
static variable |cpu_flags| in libavutil/cpu.c is read and written using
normal load and store operations. These are considered as data races.
The fix is to use atomic load and store operations.
The fix can be verified by running the libavutil/tests/cpu_init.c test
program under ThreadSanitizer:
./configure --toolchain=clang-tsan
make libavutil/tests/cpu_init
libavutil/tests/cpu_init
There should be no warnings from ThreadSanitizer.
Co-author: Dmitry Vyukov of Google, who suggested the data race fix.
Signed-off-by: Wan-Teh Chang <wtc@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/qpel_template.c')
0 files changed, 0 insertions, 0 deletions