почему-то не вызывается cleanup handler (зарегистрированый при помощи pthread_cleanup_push() в потоке, который в будущем отменят) после того как поток будет отменен при помощи pthread_cancel().
отменяемый поток при этом находится в pthread_cond_wait()
т.е есть такая картина: 1) поток A - делает pthread_cleanup_push(cleanup_handler, &some_mutex) после чего висит на pthread_cond_wait()
2) поток Б - делает pthread_cancel(&threadA)
согласно POSIX должен вызваться cleanup_handler, но этого почему-то не происходит :(