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