diff options
author | Kostya Kortchinsky <kostyak@google.com> | 2019-07-11 15:32:26 +0000 |
---|---|---|
committer | Kostya Kortchinsky <kostyak@google.com> | 2019-07-11 15:32:26 +0000 |
commit | aeb3826228a7a52eb5951545c384f5891f055c70 (patch) | |
tree | c5a3944c9da55d58a31bf0797cd0bb8252d2b6dd /lldb/packages/Python/lldbsuite/test/functionalities/non-overlapping-index-variable-i/main.cpp | |
parent | 96dff91998572f4365dac76aacaf297ef3d6794f (diff) | |
download | bcm5719-llvm-aeb3826228a7a52eb5951545c384f5891f055c70.tar.gz bcm5719-llvm-aeb3826228a7a52eb5951545c384f5891f055c70.zip |
[scudo][standalone] Merge Spin & Blocking mutex into a Hybrid one
Summary:
We ran into a problem on Fuchsia where yielding threads would never
be deboosted, ultimately resulting in several threads spinning on the
same TSD, and no possibility for another thread to be scheduled,
dead-locking the process.
While this was fixed in Zircon, this lead to discussions about if
spinning without a break condition was a good decision, and settled on
a new hybrid model that would spin for a while then block.
Currently we are using a number of iterations for spinning that is
mostly arbitrary (based on sanitizer_common values), but this can
be tuned in the future.
Since we are touching `common.h`, we also use this change as a vehicle
for an Android optimization (the page size is fixed in Bionic, so use
a fixed value too).
Reviewers: morehouse, hctim, eugenis, dvyukov, vitalybuka
Reviewed By: hctim
Subscribers: srhines, delcypher, jfb, #sanitizers, llvm-commits
Tags: #llvm, #sanitizers
Differential Revision: https://reviews.llvm.org/D64358
llvm-svn: 365790
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/functionalities/non-overlapping-index-variable-i/main.cpp')
0 files changed, 0 insertions, 0 deletions