NAME
Vacate -- release a bitMessage from procure() (v39)
SYNOPSIS
Vacate(semaphore, bidMessage)
A0 A1
void Vacate(struct signalsemaphore *,struct semaphoremessage *);
FUNCTION
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.
INPUT
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.
BUGS
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.
SEE ALSO
obtainsemaphoreshared(), initsemaphore(), releasesemaphore(),
attemptsemaphore(), obtainsemaphorelist(), procure(), obtainsemaphore()