aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
diff options
context:
space:
mode:
authorChristopher Ferris <cferris1000@users.noreply.github.com>2025-03-25 16:32:16 -0700
committerGitHub <noreply@github.com>2025-03-25 16:32:16 -0700
commit134cb8877e0da3da5c9652c55196f7a1380fb207 (patch)
tree07fa235ea970475bd6583745421385cdcb7bb144 /clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
parentc995db3e3456b422f44f3ad690072bd6359520e3 (diff)
downloadllvm-134cb8877e0da3da5c9652c55196f7a1380fb207.zip
llvm-134cb8877e0da3da5c9652c55196f7a1380fb207.tar.gz
llvm-134cb8877e0da3da5c9652c55196f7a1380fb207.tar.bz2
[scudo] Use a tryLock in secondary release to OS (#132827)
In the caching part of the secondary path, when about to try to release memory to the OS, we always wait while acquiring the lock. However, if multiple threads are attempting this at the same time, all other threads will likely do nothing when the release call is made. Change the algorithm to skip the release if there is another release in process. Also, pull the lock outside the releaseOlderThan function. This is so that in the store path, we use the tryLock and skip if another thread is releasing. But in the path where a forced release call is being made, that call will wait for release to complete which guarantees that all entries are released when requested.
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp')
0 files changed, 0 insertions, 0 deletions