В обработчике сигнала я меняю значение переменной. Однако программа никогда не замечает обновления, хотя я объявил переменную leader_barrier как sig_atomic_t .
void timer_action(int signum)
{
static int count = 0;
if ( !(*pbarrier_in_proc) && !(leader_barrier) && !(*pno_more) )
leader_barrier = 1;
}
И это подтвердило, что timer_action действительно выполняется и leader_barrier действительно становится 1 внутри него, как я видел, печатая его значения внутри обработчика сигнала.