Почему блокировка std :: mutex дважды является «неопределенным поведением»?

Согласно этомустатья:

If you try and lock a non-recursive mutex twice from the same thread without unlocking in between, you get undefined behavior.

Мой очень наивный ум говорит мне, почему они просто не возвращают ошибку? Есть ли причина, почему это должен быть UB?

Ответы на вопрос(2)

Ваш ответ на вопрос