diff options
Diffstat (limited to 'absl/base/internal/spinlock.h')
-rw-r--r-- | absl/base/internal/spinlock.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/absl/base/internal/spinlock.h b/absl/base/internal/spinlock.h index f486f68a04f9..a9037e3ed05c 100644 --- a/absl/base/internal/spinlock.h +++ b/absl/base/internal/spinlock.h @@ -151,6 +151,12 @@ class LOCKABLE SpinLock { enum { kWaitTimeMask = // Includes kSpinLockSleeper. ~(kSpinLockHeld | kSpinLockCooperative | kSpinLockDisabledScheduling) }; + // Returns true if the provided scheduling mode is cooperative. + static constexpr bool IsCooperative( + base_internal::SchedulingMode scheduling_mode) { + return scheduling_mode == base_internal::SCHEDULE_COOPERATIVE_AND_KERNEL; + } + uint32_t TryLockInternal(uint32_t lock_value, uint32_t wait_cycles); void InitLinkerInitializedAndCooperative(); void SlowLock() ABSL_ATTRIBUTE_COLD; |