Deleting a Semaphore from a Muxwait List

An application can delete semaphores from a muxwait semaphore by using DosDeleteMuxWaitSem.

Any thread in the process that created a muxwait semaphore can delete a mutex or event semaphore from the muxwait list by calling DosDeleteMuxWaitSem. Threads in other processes can also use this function, but they must first gain access to the semaphore by calling DosOpenMuxWaitSem.

Semaphores can be deleted from the muxwait list even while threads are currently waiting for the semaphore. If the deleted semaphore is the only one in the muxwait list that has not yet been posted or released, then threads that are waiting for the muxwait semaphore are unblocked. Also, if the deleted semaphore happens to be the last one that a particular thread was waiting for, that thread is unblocked. Also, if the deleted semaphore is the last one in the muxwait list (that is, if the list is now empty), then all the threads that are waiting for the muxwait semaphore are unblocked.


[Back: Adding a Semaphore to a Muxwait List]
[Next: Querying a Muxwait Semaphore]