epoll

    0熱度

    2回答

    我的應用程序類似於libevent,使用epoll(在級別觸發模式下)來檢測I/O活動並調用回調來處理它。 我最近發現,我的TCP/IP套接字被阻塞,這是一個意外,但我仍然不希望recv()調用阻止FD被epoll報告爲有讀取活動掛起。即使插座出現錯誤,當然recv()會返回並告訴我。 我對此有什麼誤解? 在這種情況下,什麼樣的網絡狀況可能導致recv()阻塞?

    0熱度

    2回答

    如果多個線程epoll在同一個套接字上等待會怎麼樣? 在我自己的實驗中,它表明只有一個線程可以成功調用epoll_wait,其他線程顯示無效參數錯誤。有人可以解釋嗎?

    0熱度

    1回答

    我的應用程序等待更長的時間,然後我在超時規定: 22578 09:33:46.959791 epoll_wait(5, <unfinished ...> 22578 09:33:50.010794 <... epoll_wait resumed> [], 128, 1498) = 0 ... 22034 09:35:07.686896 epoll_wait(5, <unfinished ..

    1熱度

    1回答

    我正在使用輪詢機制來管理多達100個連接。 poll()調用的超時值應該是什麼或者如何確定它的標準做法是否有任何標準做法。 我的情況的詳細信息 - 我有一個調度線程監聽所有的連接。一旦連接變爲準備就緒狀態,我將其禁用以進行輪詢並將連接轉發給線程池處理讀取。調度程序線程返回到輪詢。 線程池消耗connfd上的讀取並將其返回給調度程序,以便下一次將其添加到輪詢中。但是,調度程序在poll()調用返回之

    0熱度

    1回答

    在<編程與LIBEVENT>的書,它說: EV_TIMEOUT 此標誌指示之後變爲超時經過積極的事件。 當網絡IO事件準備好時,AFAIK與套接字fd相關的事件將變爲活動狀態,該事件由select/epoll/poll/kqueue通知。 如果EV_TIMEOUT使事件處於活動狀態,而套接字fd未準備好,則event_base是否會執行回調? 或者套接字fd已準備好,而EV_TIMEOUT沒有,e

    0熱度

    1回答

    在類EpollDatagramChannelConfig,有4個方法是這樣的: @Override public EpollDatagramChannelConfig setTimeToLive(int ttl) { throw new UnsupportedOperationException("Multicast not supported"); } 它們是: setLoop

    0熱度

    1回答

    我使用多個線程處理應用程序。其中一個用於epoll。這個應用程序還捕獲SIGINT信號並執行一些定稿。一切工作理想,直到我設置_GNU_SOURCE宏。這使得程序來卡住就行了: int n = epoll_wait(epfd, events, N, -1); 因此,設置_GNU_SOURCE阻止所有(recv太)從打破SIGINT等待呼叫。爲什麼這樣?什麼是解決方法?我想用sched_seta

    0熱度

    2回答

    我目前正在構建使用epoll的東西。它的工作原理相當不錯,但當底層fd關閉時,從epoll中刪除文件描述符時發出通知會很好。 只要fd已關閉,您是否有辦法從epoll獲取通知?

    0熱度

    1回答

    我必須設計一個實時系統來處理從posix mqueue上的多個進程收到的數據(專有實現)。主要要求是不要改變整個系統的主迴路延遲,而是要處理事件。我不想從接收數據的源程序創建事件,而是從自我處理創建信號到自我處理,觸發數據收到,數據將在EPOLL中處理。 那麼,做這樣的事情安全嗎? 我試着用僞代碼,並得到了這個結果:「sigqueue: (錯誤:11)資源暫時不可用」可能是什麼問題 此? 在此先感

    0熱度

    1回答

    我想開發一個跨平臺的C++網絡通信庫,使用epoll替換移動平臺上的select。 但是我發現ios只能使用kqueue,並不是所有的android平臺都支持epoll,所以在這裏尋求幫助。 或者還有其他建議嗎?