#include <cpuyield.h>
公共成员函数 |
|
CpuYield (const void *res=nullptr) | |
~CpuYield () | |
void | 重置 () |
void | Pause () |
静态公共成员函数 |
|
static void | Wait ( Int cnt) |
Static Private Member Functions |
|
static void | _mm_pause () |
Additional Inherited Members |
|
![]() |
|
using | SwitchDelegate = void(*)( CpuYieldState *state, const void *resource) |
![]() |
|
Int32 | _count |
Int32 | _loopSize |
const void * | _resource |
![]() |
|
static const Int | LOOPS_START_COUNT |
static const Int | LOOPS_MAX_GRANULARITY |
static const Int | LOOPS_BEFORE_YIELD |
static const Int | LOOPS_BEFORE_SLEEP |
static const UInt | LOCK_ACQUIRE |
static const UInt | LOCK_SPIN |
static const UInt | LOCK_RELEASE |
static const UInt | MAX_STATE_ENUM |
|
explicit |
[in] | res | The contended resource because of which Pause might have to be called. Might be a nullptr (but shouldn't). |
~ CpuYield | ( | ) |
void Reset | ( | ) |
void Pause | ( | ) |
Pauses a little while until the contended resource hopefully becomes available again. Depending on the number of calls this will either just do a light spin loop or it might put the thread to sleep. Furthermore offending threads might be logged to diagnose deadlocks or bad performance.
|
static |
|
static private |