Signal_Semaphore_No_Switch


include vmm.inc

mov     eax, SemaphoreHandle
VMMcall Signal_Semaphore_No_Switch

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. Unlike the Signal_Semaphore service, this service never causes an immediate context switch. Instead any threads that need to be released are released the next time events are serviced. This service also differs in that it preserves the state of processor interrupt mask; that is, if interrupts are disabled on entry they are still disabled when this service returns. Uses Flags.

SemaphoreHandle

Handle of the semaphore.

See also Create_Semaphore, Signal_Semaphore, Wait_Semaphore