GIVESEM (Statement)


Releases a task from waiting for a semaphore.


GIVESEM <Semaphore ID>


This statement releases the semaphore designated in <Semaphore ID>.
The system permits a restart of a process if there is one task which has the semaphore designated in <Semaphore ID> when it is released. If there is a task waiting for multiple semaphores, the system determines the execution sequence using the queuing system designated by the CREATESEM command when the semaphores were created.



DEFINT Li1, Li2, Li3 = 1
Li1 = CREATESEM(Li3)
'Creates a semaphore with the queuing system
'designated in Li3 and the semaphore
'ID obtained in Li1.
Li2 = CREATESEM(Li3)
'Creates a semaphore with the queuing system
'designated in Li3 and the semaphore
'ID obtained in Li2.
TAKESEM Li1
'Obtains the semaphore designated in Li1.
TALESEM Li2, 100
'Obtains the semaphore designated in Li1.
'However, a timeout occurs after 100 ms.
RUN samp1
GIVESEM Li1
'Releases one task from the wait status
'which has the semaphore designated in Li1.
FLUSHSEM Li2
'Releases all tasks from the wait status
'which have the semaphore designated in Li2.
DELETESEM Li1
'Deletes the semaphore with the semaphore
'ID designated in Li1.
DELETESEM Li2
'Deletes the semaphore with the semaphore
'ID designated in Li2.


Top