通過設置互斥的process-shared
屬性(pthread_mutexattr_setpshared),它允許一個互斥存在超出創建它的過程的壽命,根據該聯機幫助頁pthread_mutexattr_init:並行線程mutexattr進程共享的存儲器泄漏
特別是,這些過程可能存在於初始化過程的整個生命週期之外。
所以,如果我創建了多個進程可以訪問mmap(2)
d文件中互斥,那麼我unlink(2)
的文件,會導致內核持久內存泄漏?如果是這樣,那麼殭屍互斥數據究竟來自實現的觀點?
您提供的代碼是用於'pthre ad_mutexattr_destroy'只支持_mutexattr_,而不是_mutex_本身。 [pthread_mutex_destroy](http://code.metager.de/source/xref/gnu/glibc/nptl/pthread_mutex_destroy.c)的源代碼看起來很像NOP-ish,但是確實不知道。 –
你的問題是關於mutexattr和錯誤的手冊頁。 mutex_destroy http://code.metager.de/source/xref/gnu/glibc/nptl/pthread_mutex_destroy.c包含:stap probe(跟蹤工具stap的入口; nop如果沒有跟蹤正在運行),檢查互斥使用計數器對於某些類型的互斥體,並將互斥體類型重置爲不正確的類型。因此,NPTL中的互斥量也沒有額外的內存;它不需要釋放內核內存。在glibc的NPTL中,mutex和mutexattr都是無泄漏的。 – osgx