Signal_Semaphore


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.

SemaphoreHandle

Handle of the semaphore to signal.

See also Create_Semaphore, Signal_Semaphore_No_Switch, Wait_Semaphore