Цитата(yuri_t @ Feb 28 2012, 13:27)

IMHO, здесь будет достаточно что-то типа ( файл tn.h)
Код
#define get_task_by_tsk_queue(que) \
que ? CONTAINING_RECORD(que, TN_TCB, task_queue) : 0
В этом варианте возвращается лишняя проверка

Цитата(yuri_t @ Feb 28 2012, 13:27)

POSIX rwlock() будет слишком "тяжелым" для систем типа TNKernel
Ну может быть какой-нибудь его "облегченный" вариант можно реализовать...
Сейчас у меня, например, есть список у которого куча "читателей" и один "писатель", довольно редко вызываемый. Сейчас все реализовал на мютексах - но получается что читатели "мешают" друг другу.
Решил попробовать сделать свой вариант rwlock'a для TNKernel... но что-то опыта пока не хватает