author | Edouard Tisserant <edouard.tisserant@gmail.com> |
Thu, 20 Jul 2023 22:03:02 +0200 | |
changeset 1101 | f7a0e962650d |
parent 251 | 5e7457efbb8f |
permissions | -rw-r--r-- |
(* * (c) 2011 Edouard Tisserant * * Fake semaphore support, for non preemptive implementation. * *) FUNCTION_BLOCK SEMA VAR_INPUT CLAIM : BOOL; RELEASE : BOOL; END_VAR VAR_OUTPUT BUSY : BOOL; END_VAR VAR Q_INTERNAL : BOOL; END_VAR Q_INTERNAL := CLAIM OR ( Q_INTERNAL AND (NOT RELEASE)); BUSY := Q_INTERNAL; END_FUNCTION_BLOCK