В моем приложении (C++/Linux) иногда поток получает мьютекс (рекурсивный) при отмене. Это вызывает тупик, поскольку другие потоки также используют один и тот же мьютекс и не могут чтобы получить его.Как проверить, поддерживает ли поток mutex C++
Теперь можно проверить, заблокирован ли этот поток каким-либо мьютексом. Мой мотив состоит в том, чтобы очистить вручную, что поток заблокирован, а затем отменить нить.
Один из возможных способов - это поддерживать счетчик. Любой лучший подход будет также приветствуется ..
Заранее спасибо
Что значит «отменить»? – Dani
в потоках приложений отменяется (pthread_cancel) случайным образом .. проблема возникает, когда какой-либо поток блокирует мьютекс и отменяется ... не освобождая его. – tuban
@tuban: Подсказка: это не случайно. У вас есть ошибка. –