Вот это:
Цитата:
next_state = next_sig_lr (SIGFN_NORMAL);
if ((next_state ==# SIGASP_STOP) || ((next_sig_mr (SIGFN_NORMAL) ==# SIGASP_STOP_AND_PROCEED) && (next_state ==# SIGASP_STOP_AND_PROCEED)))
|
довольно громоздко. Я знаю, что это списано у Тимаса, но по моему мнению, здесь достаточно только первой части выражения.
Добавлено через 2 минуты
Кроме того, у семафора два положения, поэтому для него достаточно в дополнение к
enabled() только очистки блока. Остальное - долой!