[問題] Function執行過久 需要time out的功能

看板C_and_CPP作者 ( )時間8年前 (2015/08/13 15:24), 編輯推噓9(9012)
留言21則, 13人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) WDK 問題(Question): 小弟正在做關於HDI的東西,目前卡在的問題是裝置不一定有回傳資訊, 而沒回傳資訊時程式會被卡住,此時我想要有個Time out的功能, 讓函示如果超過一定的時間沒有回傳東西時可以跳出. 請先進們幫我指點一下有甚麼樣的方法可以實踐,謝謝. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.185.15 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1439450658.A.A7B.html

08/13 15:53, , 1F
狀態機
08/13 15:53, 1F

08/13 16:30, , 2F
不好意思 我查的狀態機好像都是要返回東西才可以決定下一
08/13 16:30, 2F

08/13 16:33, , 3F
步 我想要問一下有函數能知道輸入的函數幾秒內沒有返回就
08/13 16:33, 3F

08/13 16:34, , 4F
會跳出 謝謝 讓我多知道有狀態機這東西
08/13 16:34, 4F

08/13 17:26, , 5F
Timer、Thread、Sleep?
08/13 17:26, 5F

08/13 21:12, , 6F
不知道windows底下有沒有non-blocking的做法
08/13 21:12, 6F

08/13 21:13, , 7F
用non-blocking,讀不到東西就會return
08/13 21:13, 7F

08/13 21:14, , 8F
就看失敗幾次,然後跳出function就好
08/13 21:14, 8F

08/13 21:51, , 9F
linux的select函式?
08/13 21:51, 9F

08/13 22:34, , 10F
windows的話直接用Timer就好了吧?
08/13 22:34, 10F

08/13 23:15, , 11F
我比較好奇如果硬體在執行某個功能卡死時 , OS 這裡怎
08/13 23:15, 11F

08/13 23:15, , 12F
做強制停止 ? 我知道的也就只有斷電這種暴力的方法
08/13 23:15, 12F

08/14 05:04, , 13F
ctrl+alt+del
08/14 05:04, 13F

08/14 10:34, , 14F
計算step當時間,多少step沒資料就自己傳沒收到資料的code?
08/14 10:34, 14F

08/14 10:49, , 15F
自己計時,但重點是內部呼叫的函數都必須是 non-blocking
08/14 10:49, 15F

08/15 01:17, , 16F
所以 blocking 在硬體那幾乎就是沒救要斷電了 ?
08/15 01:17, 16F

08/16 19:57, , 17F
呼叫之前開thread monitor,blocking 太久就reset HW
08/16 19:57, 17F

08/16 20:53, , 18F
在linux上要看是不是interruptable 是的話就可以用signal
08/16 20:53, 18F

08/16 20:54, , 19F
喚醒重新排程
08/16 20:54, 19F

08/29 11:27, , 20F
Watch Dog Timer ?
08/29 11:27, 20F

08/29 20:11, , 21F
開個process用IPC或檔案吧
08/29 20:11, 21F
文章代碼(AID): #1Lp4OYfx (C_and_CPP)