Finite State Machine


SILC FSM Interface implements a finite state machine. The FSM can be used to implement all kinds of machines and protocols. The FSM supports also threads and can be synchronized by using mutex locks. The FSM also supports real system threads. It is possible to create new FSM thread and then execute in real system thread, if platform supports threads.

The FSM provides also asynchronous events that can be used to wait for some events or states to occur. The FSM events may be used as condition variables and signallers. The FSM events can safely be used in FSM threads that are executed in real system threads.

To synchronize machines that use FSM threads that are executed in real system threads the SILC Mutex API (silcmutex.h) may be used. Normal multi-threaded coding conventions apply when programming with real FSM threads. If the FSM threads are not real system threads, synchronization is not required.