Подглядел няшный паттерн в бсдшном ините:
В его FSM обработчик каждого из состояний является отдельной функцией, которая в качестве возвращаемого значения возвращает адрес функции-обработчика следующего состояния.
Сам цикл автомата тогда сводится к for (;;) s = (state_t) (*s)();
Жутко просто, но я сам никогда не догадывался так сделать :<
Тео де Раадт обратился к сообществу с просьбой о финансовой помощи: требуются средства для оплаты электричества, потребляемого используемыми в разработке OpenBSD компьютерами.
https://www.linux.org.ru/news/bsd/10060466/