epoll

    3熱度

    1回答

    我用libev使用async hiredis。 mLoopThread在這裏用於ev循環線程,基本上mLoopThread正在調用ev_loop()。當主線程試圖破壞async hiredis實例時,它會調用ev_unloop來嘗試使ev_loop()退出。代碼如下所示。但是這不起作用。回溯顯示mLoopThread掛在epoll_wait()中,並且主線程掛在mLoopThread-> join

    1熱度

    1回答

    epoll是否足以保留剩下的事件,並在下次調用epoll_wait()時將它們放入事件數組中?還是隻是把它們像垃圾一樣垃圾? 手冊頁忽略了這一點。

    2熱度

    1回答

    假設我在某個函數內使用epoll_ctl註冊了有限數量的事件。現在,在重複調用同一個函數中使用我註銷這些事件中的每一個一個數以時間: epoll_ctl(epfd, EPOLL_CTL_DEL, fd, event); 我怎麼能知道什麼時候註冊的所有實例都被註銷? 我是否需要爲此保留一個單獨的列表? 編輯: 我想我需要更多背景信息添加到我的問題。假設我能夠檢測到沒有註冊事件,那麼我需要在上面提

    3熱度

    2回答

    我學習使用epoll的,我寫如果你嘗試在終端上運行它,它不會因爲FDS正常工作0,1下面的例子 #include <assert.h> #include <errno.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <sys/epoll.h> #include <unistd.h> int

    1熱度

    2回答

    假設我已經構建了epoll集,是否有可能找出某個fd是否屬於這個epoll集?是否有可能從這個epoll集中找出某個fd感興趣的事件? 謝謝。

    1熱度

    1回答

    在UNIX網絡編程卷1:圖6-22,有一段代碼如下: /* include fig01 */ #include "unp.h" int main(int argc, char **argv) { int i, maxi, maxfd, listenfd, connfd, sockfd; int nready, client[FD_SETSIZE]; ssize_t

    0熱度

    1回答

    我想向連接到使用Python epoll的服務器的客戶端子集發送消息。有沒有一種可行的方法來獲取連接客戶端的fileno列表?

    1熱度

    1回答

    當我試圖編譯用手魷魚RHEL 5.5的服務器上,運行configure找來 configure: WARNING: Eep! Cannot find epoll, kqueue, /dev/poll, poll or select! configure: WARNING: Will try select and hope for the best. configure: Using selec

    3熱度

    1回答

    是否有可能創建一個對象,將支持epoll()? 我假定epoll_*系統調用取決於兼容的系統fd使得難以(如果不是不可能的話)創建具有兼容的'pseudo fd'的對象,但是認爲我會看到我是否錯了。 (發生:p)

    0熱度

    1回答

    我已經輯陣線程與工作線程的應用程序,我使用哈希表路由消息之間有兩個運行結束SD(插座descriptores),每個線程時,epoll_wait等待新的連接,因此當新sd被創建,它將被添加到哈希中,並且它將開始路由信息。沒有互斥鎖可以從散列中刪除嗎?或者下面的假設是正確的? 我在想它的原因是因爲我將從哈希中刪除,它應該是安全的,因爲除非用close(sd)關閉,否則新的sd#將不會具有保存在哈希中