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检查它是否存在。如果没有,写一个字节到管道来唤醒轮询机制。但我不喜欢这个问题需要额外的线程的