# This suppressions file should really only be used for things
# that TSAN can not correctly reason about, like raw memory
# fences or implicit equivalents created by performing atomic
# operations on variables.

# Read more about how to use this file at:
# https://github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions

# We ignore this because collect() calls functionality that relies
# on atomic::fence for correctness, which doesn't get picked up by TSAN
# as of Feb 1 2018 / rust 1.23.
race:crossbeam_epoch::internal::Global::collect

# Arc::drop is not properly detected by TSAN due to the use
# of a raw atomic Acquire fence after the strong-count
# atomic subtraction with a Release fence in the Drop impl.
race:Arc*drop

# lazy_static and thread_local rely on implicit barriers not
# picked-up by TSAN
race:lazy_static
race:std::thread::local

# tsan doesn't seem to pick up parking_lot RwLock-protected accesses
# that sometimes use lock elision
race:current_iobuf
