У меня есть boost :: mutex, который используется в двух потоках. Первый поток постоянно блокирует и разблокирует мьютекс. Второй поток использует мьютекс только при определенных условиях. Когда это условие происходит, оба потока блокируются на блокировке. Что может быть причиной этого?
Несколько случайных фактов о моей программе: мьютекс - это элемент данных класса, совместно используемый двумя потоками. Во втором потоке я передаю указатель на мьютекс функции, которая его использует, но в первом потоке я использую мьютекс по ссылке.