
В коде есть момент "приплыли", когда дальнейшее нормальное выполнение невозможно.
Я решил, что в данном случае не надо полумер по типу "а эту задачу в очередь не поставим, ибо места нет".
На php я бы выбросил исключение и перехватил бы его на самом высоком уровне для вывода юзеру "упс".
А как тут быть? Решение хочется универсальное, ибо планируется использовать сей код в разных проектах без индивидуального допиливания.
Поделитесь, пжлст, идеями. Может какой механизм великого компилятора можно задействовать? Как вы поступаете в таких случаях?
Код
void qtTask(qtTaskPtr ptr, qtDelay tick){
Task *r = empty.h;
if(NULL == r){ // нет свободных записей. Приплыли.
PORTB |= 0xff; // это отладочная затычка. Как быть при такой ошибке в библиотечном коде.
while(1);
}
head2tail(&empty, tick ? &delay : &active);
...
Task *r = empty.h;
if(NULL == r){ // нет свободных записей. Приплыли.
PORTB |= 0xff; // это отладочная затычка. Как быть при такой ошибке в библиотечном коде.
while(1);
}
head2tail(&empty, tick ? &delay : &active);
...