позволяет программисту ошибаться и лочить mutex много раз, но как только вызовется один unlock, то mutex будет освобождён. То есть что там нету счётчика как на семофоре. ))
Я сказал, что это неконсистентное поведение и такого быть не может - тип по стандарту, сколько раз лочил, то сколько и нужно разлочить.
Ну как бы это так и есть...
Unlocks the mutex if its level of ownership is 1 (there was exactly one more call to lock() than there were calls to unlock() made by this thread), reduces the level of ownership by 1 otherwise. https://en.cppreference.com/w/cpp/thread/recursive_mutex/unlock
Да, я это и скинул.
А, про Unlock это да, наврали...
Ну да, ты прав
Сказали, что потом для себя почитают, чтобы убедиться.
"мы вам перезвоним" =)
Походу )
Ну нах, он лучше нас в плюсы рубит :)))
На самом деле это не так уж страшно, если они линуксоиды, они никогда рекурсивные мьютексы и не видели даже. Ну. не использовали.
ну да, линуксоиды.
Ну не применяют рекурсивные мьютексы в Лине, хотя они даже там и есть.
Что значит не применяются
вообще? во всех ПО? или ты про что то конкретное?
Ну да, традиционно их там сначала не было , потом все привыкли, а потом завезли рекурсивные. Может я что и путаю, но факт, что культура такая. Традиции.
Что-то новое ты несешь
Так, помнится, в Лине нативные рекурсивные мьютексы - не сильно популярная штука, а на винде ядерный MUTANT (он же основа мьютекса) рекурсивен по определению
а что там за API? В POSIX PTHREAD_MUTEX_RECURSIVE был в начальной спецификации изначально
Это да, но - в отличие от винды - в posix есть нерекурсивные мьютексы
ну, это на здоровье. тогда не понятна логика интервьеров
Обсуждают сегодня