Состояние гонки в надежных мьютексах glibc/NPTL/Linux?

В комментарии к вопросу Автоматически освобождать мьютекс при сбоях в Unix еще в 2010 году Жиль заявил:

glibc's robust mutexes are so fast because glibc takes dangerous shortcuts. There is no guarantee that the mutex still exists when the kernel marks it as "will cause EOWNERDEAD". If the mutex was destroyed and the memory replaced by a memory mapped file that happens to contain the last owning thread's ID at the right place and the last owning thread terminates just after writing the lock word (but before fully removing the mutex from its list of owned mutexes), the file is corrupted. Solaris and will-be-FreeBSD9 robust mutexes are slower because they do not want to take this risk.

Я не могу понять это утверждение, поскольку уничтожение мьютекса является незаконным, если только он не разблокирован (и, следовательно, не входит в надежный список ни одного потока ). Я также не могу найти ссылки на поиск такой ошибки/проблемы. Было ли утверждение просто ошибочным?

Причина, по которой я спрашиваю и интересуюсь, заключается в том, что это имеет отношение к правильности моей собственной реализации, построенной на том же надежном мьютексе -для Linux.

16
задан Community 23 May 2017 в 10:28
поделиться