在維護期間,我看到項目代碼(在linux上的c/c++
中)在某些不可恢復錯誤的情況下調用libc
exit
函數。但是,此進程終止調用跨多個線程使用(每次遇到不可恢復的情況時)。現在 -進程退出和對線程的影響
- 可以從主線程以外的線程調用進程
exit
而沒有任何副作用。 - 每當調用
exit
(在主線程或任何其他線程中),它是否保證線程的優雅退出。
據我所知,標準(手冊頁)是閉口不談它,而要做到最好的辦法是,啓動所有線程的正常終止,並使用通知機制,main
線程必須通知的正常終止。但是,由於它是一個正在維護中的項目,因此要在更改之前檢查當前的行爲是否正確。
問題我面對的是,我可以看到隨機崩潰,其中一個線程正在調用執行的正常進程exit
之下。
'隨機崩潰' - 有什麼症狀,會發生什麼,不應該發生? –