SEMIDSTATE  (関数)  【RC7_Ver.2.2 以降】


指定したセマフォIDが有効か無効かを返します。


SEMIDSTATE(<セマフォID>)


指定したセマフォIDの「有効(1) / 無効(0)」を返します。
CREATESEM実行時セマフォIDは有効になり、DELETESEM実行時セマフォIDは無効になります。



PRO1、PRO2で使用するセマフォをTSR1で作成する。
SEMIDSTATEを使ってセマフォIDが有効でない時のみセマフォを作成するようにする。
'!TITLE "セマフォ作成"
PROGRAM TSR1
FOLDER DEFINT SEMID
'SEMIDが有効(1)でない時のみセマフォ作成
IF SEMIDSTATE (SEMID) <> 1
SEMID = CREATESEM (0)
ENDIF
END
'!TITLE "I0への書込みをセマフォで制御"
PROGRAM PRO1
EXTERN DEFINT SEMID
TAKESEM SEMID
I0=1
GIVESEM SEMID
END
'!TITLE "I0への書込みをセマフォで制御"
PROGRAM PRO2
EXTERN DEFINT SEMID
TAKESEM SEMID
I0=1
GIVESEM SEMID
END