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,所以在这里寻求帮助。 或者还有其他建议吗?