Open
Description
The system has to use multiple state machines (on the protocols as well as on TC verification etc).
Currently, these are a RIO/IO spaghetti mess. A cleaner alternative would be much appreciated.
Following requirements:
- Must support STM. The state machine requirest multiple threads. State changes are often stored in TVars. The input is often provided via either a STM conduit or an STM TBQueue. There can be multiple STM input queues present (e.g. in FOP1 there is the to-be-encoded command input and the CLCW input, which are independent)
- Timers must be supported. This involves IO functionality. Reason is, there are timeouts in the protocol, which trigger certain actions. This must be handled, also in combination with STM waiting for input and state changes. Up until now, the timer-wheel library was used, but now I switched back to updatable-timers from Paolo.