Вот мой эксперимент, но из серии "проще самому сделать, чем
разобраться". 1) Задача - не цикл, а завершающийся блок, условно
функция.2) Задачи могут активировать одна другую. 2.1) Задача
всегда отрабатывает до конца( yeld() не нужен) . 3) Перебираются
задачи начиная с первой, но старт активной всегда с наивысшего
приоритета. 4) шедулер следует вызывать в цикле: и всякие спячки и
прочее реализуются вне этого поделия. 5) Есть пример. 6) передаётся
аргумент. но он не может быть равен нулю(признак запуска задачи). Буду рад, если пригодится. На GitHub выложил, но после санкций я там не обитаю, ну их в пень-колоду.
pts.zip