[英]epoll_wait and changing system time back
我的應用程序使用epoll_wait來執行IO事件的定時等待。 如果沒有事件發生,則epoll_wait應該在超時后返回,並且我的應用程序繼續。
在測試期間,有人將系統時鍾調回一天,而我的應用程序中使用epoll_wait的部分停止工作了24小時。 顯然,這是一個問題。
我四處尋找可以讓我的應用知道時間已經改變的東西(例如,信號),但是我什么也沒發現。
有什么辦法可以應對這種突然的時間變化?
使用基於單調時間的計時器(例如timer_create(2))來生成信號並執行阻塞epoll_wait,並檢查-1返回碼和errno是否設置為EINTR。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.