Warunki wyścigu w solidnych muteksach glibc / NPTL / Linux?

W komentarzu do pytaniaAutomatycznie zwalnia mutex na awariach w Uniksie w 2010 r. jilles twierdził:

Solidne muteksy glibc są tak szybkie, ponieważ glibc pobiera niebezpieczne skróty. Nie ma gwarancji, że mutex nadal istnieje, gdy jądro oznacza go jako „spowoduje EOWNERDEAD”. Jeśli muteks został zniszczony, a pamięć zastąpiona przez plik odwzorowany w pamięci, który zawiera ostatni identyfikator wątku będącego właścicielem, we właściwym miejscu, a ostatni wątek będący właścicielem kończy się tuż po zapisaniu słowa blokującego (ale przed całkowitym usunięciem muteksu z listy posiadane muteksy), plik jest uszkodzony. Solidarne muteksy Solaris i will-be-FreeBSD9 są wolniejsze, ponieważ nie chcą podejmować tego ryzyka.

Nie mogę zrozumieć tego twierdzenia, ponieważ zniszczenie muteksu nie jest legalne, chyba że zostanie odblokowane (a więc nie ma go na solidnej liście wątków). Nie mogę też znaleźć żadnych odnośników szukających takiego błędu / problemu. Czy roszczenie było po prostu błędne?

Pytam i interesuje mnie to, że ma to znaczenie dla poprawności mojej własnej implementacji zbudowanej na tym samym prymitywie Linux-a.

questionAnswers(2)

yourAnswerToTheQuestion