Trong một bình luận về câu hỏi Automatically release mutex on crashes in Unix trở lại trong năm 2010, jilles tuyên bố: mutexes mạnh mẽĐiều kiện chủng tộc trong glibc/NPTL/Linux mạnh mẽ mutexes?
glibc của rất nhanh vì glibc mất phím tắt nguy hiểm. Không có gì đảm bảo rằng mutex vẫn tồn tại khi hạt nhân đánh dấu nó là "sẽ gây ra EOWNERDEAD". Nếu mutex bị phá hủy và bộ nhớ được thay thế bởi một tập tin ánh xạ bộ nhớ có chứa ID của chủ sở hữu cuối cùng ở đúng vị trí và chủ sở hữu cuối cùng chấm dứt ngay sau khi viết từ khóa (nhưng trước khi gỡ bỏ hoàn toàn mutex khỏi danh sách sở hữu mutexes), tệp bị hỏng. Solaris và will-be-FreeBSD9 mạnh mẽ mutexes là chậm hơn bởi vì họ không muốn chấp nhận rủi ro này.
Tôi không thể thực hiện bất kỳ khiếu nại nào, vì phá hủy một mutex không hợp pháp trừ khi nó được mở khóa (và do đó không nằm trong danh sách mạnh mẽ của bất kỳ chủ đề nào). Tôi cũng không thể tìm thấy bất kỳ tài liệu tham khảo nào tìm kiếm lỗi/vấn đề như vậy. Đơn kiện chỉ đơn giản là sai lầm?
Lý do tôi hỏi và tôi quan tâm là điều này có liên quan đến tính chính xác của việc triển khai của chính tôi được xây dựng dựa trên cùng một nguyên tắc mạnh mẽ của Linux-mutex.
omg, tên lỗi có NERD trong đó –
Dường như phương pháp tiếp cận dựa trên VMA cũ có một số vấn đề ít nhất; http://www.kernel.org/doc/Documentation/robust-futexes.txt. Tuy nhiên, nếu tôi đọc nó một cách chính xác danh sách được duy trì trong bộ nhớ không gian người dùng - vì vậy bạn phải làm gì nếu bộ nhớ đó bị hỏng? Mặc dù điều đó có lẽ chỉ có thể được xem như một trường hợp đặc biệt làm hỏng bộ nhớ dùng chung. – nos
Có, tôi thấy rằng danh sách hoặc thậm chí nội dung mutex có thể bị hỏng nếu quá trình chạy amok và ghi đè chúng. Đây có phải là vấn đề đang được mô tả không? Tôi không lo lắng về việc đảm bảo hành vi thích hợp khi một quá trình với quyền truy cập vào mutex đã gọi hành vi không xác định; Tôi chỉ quan tâm đến khả năng của một số điều kiện chủng tộc trong việc sử dụng rõ ràng của mutex mạnh mẽ. –