diff options
Diffstat (limited to 'third_party/rust/tokio-0.1.11/ci/tsan')
-rw-r--r-- | third_party/rust/tokio-0.1.11/ci/tsan | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/third_party/rust/tokio-0.1.11/ci/tsan b/third_party/rust/tokio-0.1.11/ci/tsan new file mode 100644 index 0000000000..65d65eff24 --- /dev/null +++ b/third_party/rust/tokio-0.1.11/ci/tsan @@ -0,0 +1,33 @@ +# TSAN suppressions file for Tokio + +# TSAN does not understand fences and `Arc::drop` is implemented using a fence. +# This causes many false positives. +race:Arc*drop +race:Weak*drop + +# `std` mpsc is not used in any Tokio code base. This race is triggered by some +# rust runtime logic. +race:std*mpsc_queue + +# Probably more fences in std. +race:__call_tls_dtors + +# The epoch-based GC uses fences. +race:crossbeam_epoch + +# Push and steal operations in crossbeam-deque may cause data races, but such +# data races are safe. If a data race happens, the value read by `steal` is +# forgotten and the steal operation is then retried. +race:crossbeam_deque*push +race:crossbeam_deque*steal + +# This filters out expected data race in the Treiber stack implementations. +# Treiber stacks are inherently racy. The pop operation will attempt to access +# the "next" pointer on the node it is attempting to pop. However, at this +# point it has not gained ownership of the node and another thread might beat +# it and take ownership of the node first (touching the next pointer). The +# original pop operation will fail due to the ABA guard, but tsan still picks +# up the access on the next pointer. +race:Backup::next_sleeper +race:Backup::set_next_sleeper +race:WorkerEntry::set_next_sleeper |