我無法在運行ARM的嵌入式Linux下創建計時器。我正在使用自制的C++庫來管理定時器。我自己沒有編寫代碼,儘管我可以訪問源代碼,但我並不十分了解它的實現......它工作了一段時間,然後我得到了錯誤「EAGAIN」。timer_create():-1 EAGAIN(資源暫時不可用)
使用strace我注意到,當它不工作時,定時器ID很安靜!
timer_create(CLOCK_MONOTONIC, {0, SIGRT_3, SIGEV_SIGNAL, {...}}, 0xbed50af4) = -1 EAGAIN (Resource temporarily unavailable)
看到相當低的定時器ID,當它的工作:
timer_create(CLOCK_MONOTONIC, {0x3, SIGRT_3, SIGEV_SIGNAL, {...}}, {0x3d}) = 0
我認爲定時器的數量無限!其實並不是?一旦我們完成了它,我們應該摧毀計時器嗎?我還使用了「timer_stats」內核實用程序,但是這對我沒有多大幫助......是否有內核或任何其他工具中定時器的其他調試實用程序?
感謝您的幫助!
你不能簡單地處理'EAGAIN'錯誤並重復創建你的計時器嗎?或者在每次通話結束一段時間後,EAGAIN錯誤會消失? – rekire
我真的不太瞭解您的具體計時器問題,但是當您不再需要它時摧毀某些東西肯定似乎是一個好主意。 – ereOn
它總是使EAGAIN錯誤... – morandg