[問題] polling 變數的其他選擇

看板C_and_CPP (C/C++)作者 (說好的性福呢?)時間16年前 (2009/11/23 17:49), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 目前我要polling一個變數, while (1) { if (val != lastVal) ... sleep(1); } 請問有甚麼方法可以讓polling變數的方法變成 block的方式呢? 就是當變數已經改變了, 才去做if內的事情? 就是類似select這樣的做法? 謝謝! 希望得到的正確結果: 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) motavista (linux based) gcc4 有問題的code: (請善用置底文標色功能) 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.146.11.35

11/23 17:51, , 1F
wait_event_interrupt 函式?不過這好像是kernel space的
11/23 17:51, 1F

11/23 17:52, , 2F
wait_event_interruptible <- 正確名稱
11/23 17:52, 2F

11/23 17:53, , 3F
用signal如何
11/23 17:53, 3F

11/24 03:20, , 4F
pthread_cond_wait() 和 pthread_cond_signal()
11/24 03:20, 4F
文章代碼(AID): #1B2bgdXk (C_and_CPP)
文章代碼(AID): #1B2bgdXk (C_and_CPP)