Docs » Autodocs » exec.library » Vacate
Vacate -- release a bitMessage from Procure() (V39)
Vacate(semaphore, bidMessage) A0 A1 void Vacate(struct SignalSemaphore *,struct SemaphoreMessage *);
This function can be used to release a semaphore obtained via Procure(). However, the main purpose for this call is to be able to remove a bid for a semaphore that has not yet responded. This is required when a Procure() was issued and the program no longer needs to get the semaphore and wishes to cancel the Procure() request. The canceled request will be replied with the ssm_Semaphore field set to NULL. If you own the semaphore, the message was already replied and only the ssm_Semaphore field will be cleared. NOTE: Pre-V39, Procure() and Vacate() did not work correctly. They also did not operate on SignalSemaphore semaphores. Old (and broken) MessageSemaphore use as of V39 will no longer work.
semaphore - The SignalSemaphore that you wish to Vacate() bidMessage- The SemaphoreMessage that you wish to abort. The message's ssm_Semaphore field will be cleared. The message will be replied if it is still on the waiting list. If it is not on the waiting list, it is assumed that the semaphore is owned and it will be released.
Before V39, Procure() and Vacate() used a different semaphore system that was very broken. This new system is only available as of V39 even though the LVOs are the same.
ObtainSemaphoreShared(), InitSemaphore(), ReleaseSemaphore(), AttemptSemaphore(), ObtainSemaphoreList(), Procure(), ObtainSemaphore()
|