epoll

    -2熱度

    0回答

    我們在Linux上討論這個問題。 我非常喜歡nginx比apache httpd服務器更好的表現。 但apache在模式下工作每個CPU核心有一個進程有一個線程。相應地,nginx擁有master和worker.when一個http請求(通過tcp)進入web服務器,apache開始處理它,當它完成時,處理下一個這個進程獲取。像這樣,nginx應該做同樣的事情:process一個請求,然後是另一個

    0熱度

    1回答

    epoll_wait()的第二個參數是size = sizeof(struct epoll_event)*調用程序期望(或監視)的總數事件(文件描述符)的緩衝區。在首次傳遞給epoll_wait()之前,此緩衝區始終初始化爲零。 對於下面的代碼片段 memset(&events[0], 0, maxEvents * sizeof (struct epoll_event)) do {

    2熱度

    1回答

    當EPOLLONESHOT指定時,電平觸發和邊緣觸發模式有什麼區別? 還有類似的問題here。 「蹲小貓」的答案似乎並不正確(據我所知,其他答案並不回答我的問題)。 我已嘗試以下步驟: 服務器發送2個字節到客戶端,而客戶在epoll_wait 客戶端返回等待從epoll_wait,然後讀取1個字節。 客戶端再次發生事件(由於EPOLLONESHOT) 客戶端再次調用epoll_wait。這裏,對於

    0熱度

    2回答

    我試圖用stdin和其他一些fd來做nonblocking IO。 我將它們添加到防鏽庫mio,但在使用strace進行調試期間,我發現這是一個epoll問題。 當我添加標準輸入到epoll時,epoll_wait立即返回。無論我是否已連接外殼/術語或管道別的東西(例如cat),都無關緊要。 的最小C代碼來觀察此: #include <sys/epoll.h> #include <stdio.h

    2熱度

    1回答

    我試着向mio添加幾個fds,包括標準輸入。 我的應用程序陷入困境,試圖從標準輸入讀取,從mio得到一個事件後,該標準輸入可讀。 當我調整應用程序時,我注意到mio使用epoll_wait並且該系統調用立即返回。 strace -e trace=epoll_create,epoll_ctl,epoll_wait,read,epoll_create1 ./target/debug/ongybar

    0熱度

    1回答

    我正在研究一次偵聽不同套接字的可能性。可以在Linux中使用相同的fd_set處理多個套接字連接。我已經看到gRPC也支持基於epoll的pollset的這個功能。 https://github.com/grpc/grpc/blob/18df25228cfa1f97fc5cca9176fbaef64c0e4221/doc/epoll-polling-engine.md 我打算在異步模式下調用不同的

    0熱度

    1回答

    得到所以我有一些代碼,看起來像這樣: for (;;) { errno=0; epoll_event e = {}; auto wait_r = epoll_wait(g.epoll_fd, &e, 1, 0); if (wait_r==0) break; if(wait_r ==-1 && errno==EINTR) {

    1熱度

    2回答

    假設我的過程中使用的epoll有邊沿觸發,下面 情形發生: 調用epoll_wait,成功與一個FD準備好讀。 同時的recv()成功,請繼續閱讀在現在 轉到步驟#1 將epoll_wait()立即返回所有數據 的recv()的返回EWOULDBLOCK 更多的數據來?或等到下一個數據傳入?

    0熱度

    1回答

    我已從here獲得關於epoll的基本知識。我知道epoll可以監控多個FD並處理它們。 我的問題是:一個沉重的事件會阻塞服務器,所以我必須使用多線程? 例如,服務器的epoll正在監視2個套接字A和B.現在A開始向服務器發送大量消息,以便服務器開始讀取它們。一秒鐘後,B也開始發送消息,同時A仍在發送。在這種情況下,我需要爲這些讀取操作創建一個線程?如果我不這樣做,是否意味着服務器沒有機會從B收到

    0熱度

    2回答

    我有一個使用select,epoll或kevent(平臺依賴,OSX,Linux和FreeBSD)的中央事件機制的程序。 現在我有一個問題,我需要等待一個進程完成執行。我從這個過程中得到的只是它的PID。有沒有辦法等待PID完成上述機制? 我目前的想法是爲PID創建一個管道,並使用信號爲kill的輪詢PID檢查它是否存在。如果沒有,寫一個字節到管道來喚醒輪詢機制。但我不喜歡這個問題需要額外的線程的