我在寫測試多線程程序(學生家庭作業 - 可能越野車)的一些代碼,一個看門狗定時器,並希望能夠當它們發生死鎖檢測。當正常運行,程序經常產生輸出到標準輸出,這樣就使得它相當簡單:如果沒有輸出X秒,殺了它,並報告死鎖。這裏的函數原型:工具實現在python
def run_with_watchdog(command, timeout):
"""Run shell command, watching for output. If the program doesn't
produce any output for <timeout> seconds, kill it and return 1.
If the program ends successfully, return 0."""
我可以寫我自己,但它是一個有點棘手得到正確的,所以我寧願儘可能使用現有的代碼。任何人都寫類似的東西?
好的,請參閱下面的解決方案。該子模塊也可能是相關的,如果你正在做類似的事情。