問題:是否初始化pthread_mutex_t對象內核持久化? - 關注Linux V 2.6以後的版本。初始化pthread_mutex_t對象內核是否持久?
動機: 如果持續性:對象資源不會與特定的清理被釋放,pthread_mutex_destroy
在實際編碼而言,這意味着 創建程序退出後,互斥對象將持續或中止不清理,除非pthread_mutex_destroy
調用了 。我有常規地通過一個討厭的控制程序, ,其採用kill -9
,SIGKILL,試圖kill -15
(SIGTERM)之後去除代碼。程序的設計 不會改變,它是供應商代碼。 沒有辦法改變它的基本行爲。正確清理代碼通常比控制守護進程喜歡的時間要長,所以'zap'就是這個過程。這經常發生。
https://www.kernel.org/doc/Documentation/mutex-design.txt 從英戈莫爾納
[這是較舊的材料,其說「是」,自旋鎖是一個內核模式對象]
「結構互斥」是新互斥類型,在定義包括/ Linux的/mutex.h和 在kernel/locking/mutex.c中實現。它是一個基於計數器的互斥鎖,具有 螺旋鎖和等待列表。該計數器有3種狀態:1爲「解鎖」,0爲 「鎖定」,負數(通常爲-1)爲「鎖定,潛在服務員 排隊」。
http://man7.org/linux/man-pages/man2/execve.2.html有:
- 比調用線程之外的所有線程的 execve的過程中被破壞()。互斥體,條件變量和其他pthreads 對象不會被保留。
因此,調用exec(),family之一不是一種確定持久性的方法。
http://man7.org/linux/man-pages/man3/exit.3.html有任何關於互斥一個 或其他方式。
有人能指出我的最終代碼或文檔的一種方式或其他? 我需要用堅實的東西來面對我們的供應商。在Linux中
問問你自己:莫非任何問題,你想象一個十二歲被用來編寫針對Linux服務器微不足道的DOS攻擊?如果是這樣,那麼問題可能不存在。 –
是的,但供應商是11歲。 (幽默)。如果你說的是真的,那麼告訴我是我所要求的。 –
您正在查看的互斥體文檔是內核內部使用的(在內核組件和模塊之間)。它與pthread互斥體無關。這可能是你混淆的根源。 –