poll-syscall

    0热度

    3回答

    下面的代码工作正常,它发送所有正确的数据,并且它正在接收正确的数据。 当我用它来基准非常快的服务器,基准的CPU占用率约10%。但是,当我测试一台速度慢的服务器时,这个数字会上升到50%左右 - 就像服务器的基准测试/压力测试一样。 这是由什么top的报告会。 为什么要使用这么多的CPU?我怀疑我滥用民意调查,但我不知道如何? 的CPU时间慢的服务器是4倍的基准,而对于快速的服务器是7倍的基准。

    0热度

    1回答

    我发现poll()系统调用即使在套接字被对等关闭后也返回POLLIN事件。我看到POLLIN和POLLERR都设置了。即使在read()调用返回-1后,这种情况仍然会发生。 只有在没有POLLIN的情况下,我的逻辑才会处理POLLERR,以确保我读取了在套接字断开连接之前已经到达的任何数据包。因此,我永远不会处理POLLERR,因为始终设置POLLIN。 为什么poll()在套接字错误后返回POL

    0热度

    2回答

    我想在poll()返回错误时在我的代码中测试场景。但我不知道如何强制poll()返回一个错误。我试图无限制地调用poll()块并尝试发送一个SIGINT,但是这只是简单地停止了这个过程。 有没有办法让poll()返回一个错误? 谢谢。

    0热度

    1回答

    我想知道POSIX select()调用中的超时值。我明白为什么可能需要值0(用于轮询文件描述符)。常用的还有其他什么价值,以及目的是什么?

    0热度

    1回答

    有可能套接字上的write()调用失败,但poll()不是 检测到任何错误?是否有任何类型的错误会导致写入失败,但不被poll()系统调用视为错误? 我有一个调度程序线程持续监视套接字,并负责检测和处理套接字错误,负责 。 我有一个工作线程,当调度程序线程通知时,它会在套接字上进行实际的读写操作。 工作线程的write()调用失败,但调度程序线程的poll()系统调用从不报告错误。这怎么发生!

    1热度

    1回答

    我试图在每次更改状态时都读取一个GPIO值。 /sys/class/gpio/gpio499/value 我已经设置/sys/class/gpio/gpio499/edge是既 我试图监视一个单独的线程中使用调查命令值的变化。以下是代码片段: void PIN_gpio_poll(size_t gpio) //GPIO 499 { char path[30]; ch

    0热度

    1回答

    我有我的网络连接管理aysnc线程池模型。一个调度程序线程保持调用poll()和一个poll()表示如此的 可读/写的工作线程池。 请考虑poll()表示套接字已准备就绪的情况。但工作线程尚未处理读取。我禁用读取轮询,而工作线程尚未处理读取。现在远程端断开连接并轮询() 以POLLERR/POLLHUP返回。当工作线程在此之后执行read()调用时会发生什么? 即使有一些尚未读取的数据,read(

    -2热度

    1回答

    我有一个C++服务器和客户端。 我正在使用poll()系统调用来监视服务器上的套接字以进行读取,写入和错误。 对于某些连接,我发现poll()在发送一堆数据并在中途失败后检测到一个ECONNRESET。在客户端,我也看到一个ECONNRESET被报告。 所以基本上双方都报告说远程端关闭了连接。 这是怎么发生的? 如何调试?是否有任何我可以启用的tcp层日志记录?