# 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

# Rayon relies on crossbeam stuff which uses raw fences, which are
# not detected by TSAN.
race:rayon

# 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

# Rayon relies on crossbeam stuff which uses raw fences, which are
# not detected by TSAN.
race:rayon

# 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

Add Arc::drop to TSAN suppressions file
Add Arc::drop to TSAN suppressions file
