lib/sema.txt
changeset 251 5e7457efbb8f
equal deleted inserted replaced
250:5d2927300e2c 251:5e7457efbb8f
       
     1 (*
       
     2  * (c) 2011 Edouard Tisserant
       
     3  *
       
     4  * Fake semaphore support, for non preemptive implementation.
       
     5  *
       
     6  *)
       
     7 
       
     8 
       
     9 FUNCTION_BLOCK SEMA
       
    10   VAR_INPUT
       
    11     CLAIM : BOOL;
       
    12     RELEASE : BOOL;
       
    13   END_VAR
       
    14   VAR_OUTPUT
       
    15     BUSY : BOOL;
       
    16   END_VAR
       
    17   VAR
       
    18     Q_INTERNAL : BOOL;
       
    19   END_VAR
       
    20 
       
    21   Q_INTERNAL := CLAIM OR ( Q_INTERNAL AND (NOT RELEASE));
       
    22   BUSY := Q_INTERNAL;
       
    23 
       
    24 END_FUNCTION_BLOCK
       
    25