Здравствуйте, o.palij, Вы писали:
OP>Здравствуйте, zaufi, Вы писали:
Z>>не ужели не понятно как? -- у тебя deadlock очевидно же...
Z>>ревьюить весь код работающий с данным mutexом (из того что ты привел есь только одна функция, и по ней одной только телепаты тебе смогут сказать что происходит... а они как обычно все в отпуске
)
OP>Имеется в виду, что этот мьютекс может захватыватся в другом месте кроме как в tick()?
OP>OP>$ grep tick_mutex *
OP>ncui.cpp: pthread_mutex_lock(&tick_mutex);
OP>ncui.cpp: pthread_mutex_unlock(&tick_mutex);
OP>ncui.hpp: pthread_mutex_t tick_mutex;
OP>
OP>т.е. он захватывается только в ncui::tick(). этот tick() вызывается только внутри loop() и внутри ncui::loop(). Внутри ncui::loop() tick() вызывается только если нажата клавиша, чего явно не происходит.
ок, а где этот mutex инициализируется????
гдета должен быть вызов pthread_mutex_init (из результата грепа видно что статической инициализации нет) -- где же тогда рантаймная инициализация??