История изменений
Исправление alysnix, (текущая версия) :
Есть просто прерывания, и один общий эвент луп, который поллит статусы очередей
так не надо делать.
правильно так.
есть очередь рутин. обработчик конкретного прерывания кладет что-то в очередь данных, что мы тут много обсуждаем, и кладет рутину, в общую очередь рутин.
а цикл выбирает их очереди рутин очередную, и запускает ее.
рутина - просто функция без параметров.
void f1(){
}
void f2(){
}
не надо полить никакие статусы. поскольку если в очередь рутин непуста - значит ее надо опустошить выбирая и запуская рутины. а если пуста - вызвать слип проца.
для одностековой конфигурации это единственно верный способ организовать правильную работу.
одноврменно эти ваши yield’ы отправляются в мусорку.
Исправление alysnix, :
Есть просто прерывания, и один общий эвент луп, который поллит статусы очередей
так не надо делать.
правильно так.
есть очередь рутин. обработчик конкретного прерывания кладет что-то в очередь данных, что мы тут много обсуждаем, и кладет рутину, в общую очередь рутин.
а цикл выбирает их очереди рутин очередную, и запускает ее.
рутина - просто функция без параметров.
void f1(){
}
void f2(){
}
не надо полить никакие статусы. поскольку если в очередь рутин непуста - значит ее надо опустошить выбирая и запуская рутины. если нет - вызвать слип проца.
для одностековой конфигурации это единственно верный способ организовать правильную работу.
одноврменно эти ваши yield’ы отправляются в мусорку.
Исходная версия alysnix, :
Есть просто прерывания, и один общий эвент луп, который поллит статусы очередей
так не надо делать.
правильно так.
есть очередь рутин. обработчик конкретного прерывания кладет что-то в очередь данных, что мы тут много обсуждаем, и кладет рутину, в общую очередь рутин.
а цикл выбирает их очереди рутин очередную, и запускает ее.
задание - просто функция без параметров.
void f1(){
}
void f2(){
}
не надо полить никакие статусы. поскольку если в очередь рутин непуста - значит ее надо опустошить выбирая и запуская рутины. если нет - вызвать слип проца.
для одностековой конфигурации это единственно верный способ организовать правильную работу.
одноврменно эти ваши yield’ы отправляются в мусорку.