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

作者: KERPAT ( )   2015-08-13 15:24:16
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
WDK
問題(Question):
小弟正在做關於HDI的東西,目前卡在的問題是裝置不一定有回傳資訊,
而沒回傳資訊時程式會被卡住,此時我想要有個Time out的功能,
讓函示如果超過一定的時間沒有回傳東西時可以跳出.
請先進們幫我指點一下有甚麼樣的方法可以實踐,謝謝.
作者: johnpage (johnpage)   2015-08-13 15:53:00
狀態機
作者: KERPAT ( )   2015-08-13 16:30:00
不好意思 我查的狀態機好像都是要返回東西才可以決定下一步 我想要問一下有函數能知道輸入的函數幾秒內沒有返回就會跳出 謝謝 讓我多知道有狀態機這東西
作者: bdvstg (bdvstg)   2015-08-13 17:26:00
Timer、Thread、Sleep?
作者: godman362 (蕭青)   2015-08-13 21:12:00
不知道windows底下有沒有non-blocking的做法用non-blocking,讀不到東西就會return就看失敗幾次,然後跳出function就好
作者: donby (東逼)   2015-08-13 21:51:00
linux的select函式?
作者: haoboo (薩伊克斯)   2015-08-13 22:34:00
windows的話直接用Timer就好了吧?
作者: EdisonX (卡卡獸)   2015-08-13 23:15:00
我比較好奇如果硬體在執行某個功能卡死時 , OS 這裡怎做強制停止 ? 我知道的也就只有斷電這種暴力的方法
作者: johnpage (johnpage)   2015-08-14 05:04:00
ctrl+alt+del
作者: VSei (Chaos)   2015-08-14 10:34:00
計算step當時間,多少step沒資料就自己傳沒收到資料的code?
作者: firose (guest也是也是也是也是也)   2015-08-14 10:49:00
自己計時,但重點是內部呼叫的函數都必須是 non-blocking
作者: EdisonX (卡卡獸)   2015-08-15 01:17:00
所以 blocking 在硬體那幾乎就是沒救要斷電了 ?
作者: askacis (ASKA)   2015-08-16 19:57:00
呼叫之前開thread monitor,blocking 太久就reset HW
作者: ah7675 (阿毛)   2015-08-16 20:53:00
在linux上要看是不是interruptable 是的話就可以用signal喚醒重新排程

Links booklink

Contact Us: admin [ a t ] ucptt.com