Difference between revisions of "MC-Basic:SEMAPHORETAKE"
(Created page with '{{MC-Basic |SHORT FORM= semTake |SYNTAX= <''lval''> = SemTake(<''semaphore name''> { , ''<timeout>''}) |AVAILABILITY= Versions 3.7.x and higher |DESCRIPTION= SEMTAKE acquires …') |
m (1 revision) |
(No difference)
|
Revision as of 16:10, 13 December 2010
SEMTAKE acquires a semaphore that can be used for multi-task synchronization. If a semaphore is free, SEMTAKE returns 1 and the semaphore is marked as ‘taken’. If the semaphore is already taken, SEMTAKE returns 0 and the semaphore’s status does not change. SEMTAKE can be used to block simultaneous access to shared resources in the system or to a critical user software section.
If time-out is provided system will try to acquire a semaphore specified amount of time.
Short form
semTake
Syntax
<lval> = SemTake(<semaphore name> { , <timeout>})
Availability
Versions 3.7.x and higher
Type
Long
Range
return value: 0 = unsuccessful (semaphore not taken)
1 = succeessful (semaphore taken)
<timeout>: 0 to 5000
Units
milliseconds
Default
0
Scope
Task, Terminal
Examples
While semTake(SEM1,1000) = 0 ‘wait for the release of the semaphore
’wait for resource
End While
REM critical section code
……
……
semTake(SEM1) ‘take the semaphore
semTake(SEM1 , 100 )