The mxInit() function will initialize a MUTEX variable.
The mxInit() function must be called before any other operations can be performed on the mutex.
Input:
None
Returns: MUTEX
The initialized mutex.
Declaration:
FUNCTION mxInit : MUTEX;
Example:
INCLUDE rtcu.inc
VAR
mxCnt : MUTEX;
Count : DINT := 0;
END_VAR;
THREAD_BLOCK Thread_A;
WHILE TRUE DO
mxLock(mx:=mxCnt);
Count := Count + 1;
mxUnlock(mx:=mxCnt);
END_WHILE;
END_THREAD_BLOCK;
THREAD_BLOCK Thread_B;
WHILE TRUE DO
mxLock(mx:=mxCnt);
Count := Count + 5;
mxUnlock(mx:=mxCnt);
END_WHILE;
END_THREAD_BLOCK;
PROGRAM test;
VAR
TA : Thread_A;
TB : Thread_B;
i : INT;
END_VAR;
mxCnt := mxInit();
TA();
TB();
BEGIN
Sleep(delay:=1000);
DebugFmt(message:="Count: \4",v4:=Count);
END;
END_PROGRAM;
|