[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]


   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()