class SchedulingGuard
Defined at line 60 of file ../../third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h
SchedulingGuard
Provides guard semantics that may be used to disable cooperative rescheduling
of the calling thread within specific program blocks. This is used to
protect resources (e.g. low-level SpinLocks or Domain code) that cooperative
scheduling depends on.
Domain implementations capable of rescheduling in reaction to involuntary
kernel thread actions (e.g blocking due to a pagefault or syscall) must
guarantee that an annotated thread is not allowed to (cooperatively)
reschedule until the annotated region is complete.
It is an error to attempt to use a cooperatively scheduled resource (e.g.
Mutex) within a rescheduling-disabled region.
All methods are async-signal safe.
Public Methods
void SchedulingGuard (const SchedulingGuard & )
Defined at line 64 of file ../../third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h
SchedulingGuard & operator= (const SchedulingGuard & )
Defined at line 65 of file ../../third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h
bool ReschedulingIsAllowed ()
Returns true iff the calling thread may be cooperatively rescheduled.
Defined at line 112 of file ../../third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h
Friends
int SchedulingGuard (int32_t c, int mode)
class SpinLock
class SchedulingHelper
class Mutex
class CondVar