aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
diff options
context:
space:
mode:
authorJoseph Huber <jhuber6@vols.utk.edu>2023-03-30 09:50:56 -0500
committerJoseph Huber <jhuber6@vols.utk.edu>2023-03-30 11:40:24 -0500
commitdff3909c3ed935138608a02fcb940589a95f1a14 (patch)
tree851efe96132c54703d29766f89a0ad27695ed388 /clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
parent9255124a0713f1fe57e553c4266380a7087a61c6 (diff)
downloadllvm-dff3909c3ed935138608a02fcb940589a95f1a14.zip
llvm-dff3909c3ed935138608a02fcb940589a95f1a14.tar.gz
llvm-dff3909c3ed935138608a02fcb940589a95f1a14.tar.bz2
[libc] Support suspending threads during RPC spin loops
The RPC interface relies on waiting on atomic signals to coordinate which side of the protocol is in control of the shared buffer. The GPU client supports briefly suspending the executing thread group. This is used by the thread scheduler to identify which thread groups can be switched out so that others may execute. This allows us to ensure that other threads get a chance to make forward progress while these threads wait on the atomic signal. This is currently only relevant on the client-side. We could use an alternative implementation on the server that uses the standard `nanosleep` on supported hosts. Reviewed By: JonChesterfield, tianshilei1992 Differential Revision: https://reviews.llvm.org/D147238
Diffstat (limited to 'clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp')
0 files changed, 0 insertions, 0 deletions