include vmm.inc
mov eax, SemaphoreHandle
VMMCall Signal_Semaphore
Signals a semaphore, releasing (unblocking) a single thread if there are any threads blocked waiting for the semaphore. The threads are released in order of priority; that is, the highest priority thread is released first even if it has been blocked for the shortest time. When signaling the semaphore causes a higher priority thread to be released and the VMM has not been reentered, an immediate context switch to the higher priority thread occurs. This service returns with interrupts enabled. Uses Flags.
Create_Semaphore, Signal_Semaphore_No_Switch, Wait_Semaphore