LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

Есть просто прерывания, и один общий эвент луп, который поллит статусы очередей

так не надо делать.

правильно так.

есть очередь рутин. обработчик конкретного прерывания кладет что-то в очередь данных, что мы тут много обсуждаем, и кладет рутину, в общую очередь рутин.

а цикл выбирает их очереди рутин очередную, и запускает ее.

рутина - просто функция без параметров.

void f1(){

}

void f2(){

}

не надо полить никакие статусы. поскольку если в очередь рутин непуста - значит ее надо опустошить выбирая и запуская рутины. а если пуста - вызвать слип проца.

для одностековой конфигурации это единственно верный способ организовать правильную работу.

одноврменно эти ваши yield’ы отправляются в мусорку.

Исправление alysnix, :

Есть просто прерывания, и один общий эвент луп, который поллит статусы очередей

так не надо делать.

правильно так.

есть очередь рутин. обработчик конкретного прерывания кладет что-то в очередь данных, что мы тут много обсуждаем, и кладет рутину, в общую очередь рутин.

а цикл выбирает их очереди рутин очередную, и запускает ее.

рутина - просто функция без параметров.

void f1(){

}

void f2(){

}

не надо полить никакие статусы. поскольку если в очередь рутин непуста - значит ее надо опустошить выбирая и запуская рутины. если нет - вызвать слип проца.

для одностековой конфигурации это единственно верный способ организовать правильную работу.

одноврменно эти ваши yield’ы отправляются в мусорку.

Исходная версия alysnix, :

Есть просто прерывания, и один общий эвент луп, который поллит статусы очередей

так не надо делать.

правильно так.

есть очередь рутин. обработчик конкретного прерывания кладет что-то в очередь данных, что мы тут много обсуждаем, и кладет рутину, в общую очередь рутин.

а цикл выбирает их очереди рутин очередную, и запускает ее.

задание - просто функция без параметров.

void f1(){

}

void f2(){

}

не надо полить никакие статусы. поскольку если в очередь рутин непуста - значит ее надо опустошить выбирая и запуская рутины. если нет - вызвать слип проца.

для одностековой конфигурации это единственно верный способ организовать правильную работу.

одноврменно эти ваши yield’ы отправляются в мусорку.