Цитата(kosyak© @ Feb 27 2012, 18:21)

Или я где-то не правильно рассуждаю?
Рассуждаете Вы совершенно правильно.
Если queue пустая, то ф-ция queue_remove_head() возвращает 0.
В версиях до 2.6, ф-ции get_task_by_tsk_queue() и task_wait_complete() в этом случае
также вернут 0 и ничего нештатного не случится.
А вот в версии 2.6 ф-ция get_task_by_tsk_queue() была заменена на макрос без проверки
входных параметров(для увеличения скорости работы) и здесь могут появиться проблемы.
В версии 2.7 код этого макроса будет заменен на более надежный.