信號量睡眠問題

今天測試發現一個bug,當對我負責的模塊一塊兒執行兩個命令時會有錯誤,例如"command 1;command 2"。函數

分析代碼發現兩個問題,測試

第1、command 1中存在建立後臺進程,當建立後臺進程時,本進程繼續執行,忽略後臺進行執行狀況,因此,可能存在後臺進行爲執行完成,而command 2就開始執行的狀況,命令執行順序錯亂。進程

第2、command 1中發了一個SIGTERM信號,而模塊處理函數中存在sleep類型函數,當存在此類函數時,進程會睡眠而讓出CPU,此時會繼續執行command 2,命令執行順序錯亂。後臺

相關文章
相關標籤/搜索