Известны ли проблемы статической инициализации мьютексов pthread с использованием PTHREAD_MUTEX_INITIALIZER и передачи их напрямую для блокировки?
Я читал на некоторых сайтах, что это не может быть гарантировано на всех платформах, а также на странице справки есть примечание ниже:
Примечание. Инициализация мьютекса с использованием PTHREAD_MUTEX_INITIALIZER не приводит к немедленной инициализации мьютекса. Вместо этого при первом использовании функции pthread_mutex_lock () или pthread_mutex_trylock () переходят в медленный путь и вызывают инициализацию мьютекса. Поскольку мьютекс не является простым объектом памяти и требует, чтобы система выделяла некоторые ресурсы, попытка вызова pthread_mutex_destroy () или pthread_mutex_unlock () для мьютекса, статически инициализированного с помощью PTHREAD_MUTEX_INITIALER и еще не заблокированного, приводит к ошибке EINVAL .
Итак, если два потока вызовут pthread_mutex_lock после статической инициализации, это приведет к любой проблеме?