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