Информация об изменениях

Сообщение Почему повторный вызов mutex::lock это UB? от 16.03.2018 10:39

Изменено 16.03.2018 10:40 Максим Рогожин

Почему повторный вызов mutex::lock это UB?
Объясните, пожалуйста
1. почему нельзя два раза вызывать std::mutex::lock() (т.е. не вызвав перед вторым вызовом unlock())?
2. почему это UB, а не исключение, например?

В Win API если поток может заходить повторно в метод защищенный WinAPI-шным mutex-ом, если я не ошибаюсь.
Почему повторный вызов mutex::lock это UB?
Объясните, пожалуйста
1. почему нельзя два раза вызывать std::mutex::lock() (т.е. не вызвав перед вторым вызовом unlock())?
2. почему это UB, а не исключение, например?

В Win API поток может заходить повторно в метод защищенный WinAPI-шным mutex-ом, если я не ошибаюсь.