<==== 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