Я просматривал код, который предоставляет C/C++-оболочку для мьютекса pthread. Код сохраняет теневую переменную для сигнализации/отсутствия сигнала. Код также игнорирует возвращаемые значения из таких функций, как pthread_mutex_lock
и pthread_mutex_trylock
, поэтому теневая переменная может не точно отражать состояние мьютекса (игнорируя условие незначительной гонки).pthread mutex: get state
Предоставляет ли pthread возможность запросить мьютекс для его состояния? Быстрое считывание pthread API, похоже, не предлагает. Я также не вижу ничего интересного, которое работает на pthread_mutexattr_t
.
Или следует использовать trylock
, полагаться на EBUSY
и отказаться от собственности, если приобретено?
Заранее спасибо.
ОК, это звучит как плохой дизайн из этой библиотеки. – jww