я вообще без оберток пишу либо
Код
void *pc;
//
if pc != NULL goto *pc;
либо смешанные стейт машины, где переменная у switch(pc)
принимает не только безымянные значения с помощью __LINE__ и такой-то матери
но и предопределенные, и стейт машину можно без гемора переключить в другое состояние.
При этом, выполнение прерываний на стейт машинах это тоже часть задумки.
Красиво, безобразно и единообразно

В процессе эксплуатации прототред-лайк сопрограмм юзер-программист

сталкивается с соблазном запилить
абсолютно все прототредами либо сильно извращаться на длинных вычислениях.
так я Вам скажу, делать этого абсолютно не нужно, если у Вас есть какая-то приоритетная часть - ее можно из прерывания по таймеру вызвать.
все решаемо, в общем. И у такой программно-аппаратной РТОС хорошие характеристики.
Кроме того, волшебные коллбеки повышают универсальность написанного.
Сообщение отредактировал _Pasha - Dec 18 2014, 18:13