<==== Simulate 8 CPUs =====>
AcquireQueuedSpinLock - Main
AcquireQueuedSpinLock - Main - Acquired
CPU[3] - AcquireQueuedSpinLock
CPU[6] - AcquireQueuedSpinLock
CPU[2] - AcquireQueuedSpinLock
CPU[7] - AcquireQueuedSpinLock
CPU[1] - AcquireQueuedSpinLock
CPU[0] - AcquireQueuedSpinLock
CPU[4] - AcquireQueuedSpinLock
CPU[5] - AcquireQueuedSpinLock
x == exit
x
Get x -> exit
ReleaseQueuedSpinLock - Main
ReleaseQueuedSpinLock - Main - Released
Waiting for Threads
CPU[3] - AcquireQueueSpinLock -> Acquired.
CPU[3] - Waiting for CloseEvent
CPU[3] - Received CloseEvent
CPU[3] - ReleaseQueuedSpinLock
CPU[3] - ReleaseQueuedSpinLock -> Released.
CPU[6] - AcquireQueueSpinLock -> Acquired.
CPU[6] - Waiting for CloseEvent
CPU[6] - Received CloseEvent
CPU[6] - ReleaseQueuedSpinLock
CPU[6] - ReleaseQueuedSpinLock -> Released.
CPU[2] - AcquireQueueSpinLock -> Acquired.
CPU[2] - Waiting for CloseEvent
CPU[2] - Received CloseEvent
CPU[2] - ReleaseQueuedSpinLock
CPU[2] - ReleaseQueuedSpinLock -> Released.
CPU[7] - AcquireQueueSpinLock -> Acquired.
CPU[7] - Waiting for CloseEvent
CPU[7] - Received CloseEvent
CPU[7] - ReleaseQueuedSpinLock
CPU[7] - ReleaseQueuedSpinLock -> Released.
CPU[1] - AcquireQueueSpinLock -> Acquired.
CPU[1] - Waiting for CloseEvent
CPU[1] - Received CloseEvent
CPU[1] - ReleaseQueuedSpinLock
CPU[1] - ReleaseQueuedSpinLock -> Released.
CPU[0] - AcquireQueueSpinLock -> Acquired.
CPU[0] - Waiting for CloseEvent
CPU[0] - Received CloseEvent
CPU[0] - ReleaseQueuedSpinLock
CPU[0] - ReleaseQueuedSpinLock -> Released.
CPU[4] - AcquireQueueSpinLock -> Acquired.
CPU[4] - Waiting for CloseEvent
CPU[4] - Received CloseEvent
CPU[4] - ReleaseQueuedSpinLock
CPU[4] - ReleaseQueuedSpinLock -> Released.
CPU[5] - AcquireQueueSpinLock -> Acquired.
CPU[5] - Waiting for CloseEvent
CPU[5] - Received CloseEvent
CPU[5] - ReleaseQueuedSpinLock
CPU[5] - ReleaseQueuedSpinLock -> Released.
END