diff options
| author | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2020-03-20 00:00:00 +0000 |
|---|---|---|
| committer | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2020-03-20 00:18:44 +0100 |
| commit | fd0e15bbcda4b1674f22e8db5fd81a63d671c996 (patch) | |
| tree | cfa5e209839d407fefde566dc52da3889dba5e21 /src/liballoc/lib.rs | |
| parent | f4c675c476c18b1a11041193f2f59d695b126bc8 (diff) | |
| download | rust-fd0e15bbcda4b1674f22e8db5fd81a63d671c996.tar.gz rust-fd0e15bbcda4b1674f22e8db5fd81a63d671c996.zip | |
Make std::sync::Arc compatible with ThreadSanitizer
The memory fences used previously in Arc implementation are not properly understood by ThreadSanitizer as synchronization primitives. This had unfortunate effect where running any non-trivial program compiled with `-Z sanitizer=thread` would result in numerous false positives. Replace acquire fences with acquire loads when using ThreadSanitizer to address the issue.
Diffstat (limited to 'src/liballoc/lib.rs')
| -rw-r--r-- | src/liballoc/lib.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/liballoc/lib.rs b/src/liballoc/lib.rs index ffa4176cc79..d877ac6ac5c 100644 --- a/src/liballoc/lib.rs +++ b/src/liballoc/lib.rs @@ -80,6 +80,7 @@ #![feature(box_into_raw_non_null)] #![feature(box_patterns)] #![feature(box_syntax)] +#![feature(cfg_sanitize)] #![feature(cfg_target_has_atomic)] #![feature(coerce_unsized)] #![feature(const_generic_impls_guard)] |
