Поскольку вы не указали, какая ОС, я расскажу вам, что происходит в Win32.
В Win32 второй поток получит WAIT_ABANDONED, когда он будет ждать мьютекса, принадлежащего завершившемуся потоку. Обратите внимание, что получение WAIT_ABANDONED означает, что второй поток получил мьютекс, поэтому не будет взаимоблокировки. Второй поток должен обнаружить результат WAIT_ABANDONED и убедиться, что ресурс, защищенный мьютексом, находится в действительном состоянии. , Если он может обнаружить коррупцию и не обнаружит ее, можно продолжить. Если нет, то стоит выдвинуть какую-то ошибку.
В некоторых реализациях мьютекса нет способа обнаружить, что поток, которому он принадлежит, завершился, и вы оказались в тупике.
В некоторых реализациях мьютекса есть способ определить, что такое поток-владелец, выяснить, что поток-владелец завершен, и затем получить право собственности на мьютекс.