Алгоритм реализации и использования сопрограмм и многозадачности на Си
1. Модифицировать пример кода(скину в диалог) под использование нескольких сопрограмм (больше трёх), составив из них очередь. Очередь может быть реализована связным списком или массивом. Для передачи управления реализовать процедуру void yield(void), выбирающую следующую сопрограмму из очереди;
2. Модифицировать программу с пункта 1 под использование makecontext и swapcontext;
Задание 2.
1. Перенести из задания 1 процедуру переключения сопрограмм в обработчик сигналов. Описать последовательность переключений контекстов и состояние маски блокируемых сигналов при каждом переключении.
2. Реализуйте замену системному вызову sleep, позволяющую исключить вашу сопрограму из очереди на исполнение на указанное количество секунд:
unsigned int cosleep(unsigned int sec);