- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
是否可以在一次性级触发模式下使用epoll
?
当我搜索时,我找不到任何关于它的信息;好像大家都用边沿触发的方式。
最佳答案
When the EPOLLONESHOT
flag is selected and you have pulled an event for a socket, then the socket won't get removed from epoll as many think but its events get disabled.您可以使用 epoll_ctl
/EPOLL_CTL_MOD
再次启用它们。
EPOLLONESHOT
行为派上用场的一个示例是当您将可用数据从套接字读取到缓冲区时。该缓冲区将独立清空,但在它不为空之前,您必须禁用套接字事件,即使套接字有其他数据也是如此。然后在缓冲区被使用并清空后,您可以重新启用套接字。
仅当您重新启用套接字时,边沿触发和电平触发的“一次性”行为之间的区别才会出现。一个例子:
epoll_ctl
/EPOLL_CTL_MOD
重新启用套接字。水平触发的 EPOLLONESHOT:
边沿触发 EPOLLONESHOT:
EAGAIN
/EWOULDBLOCK
来测试它。关于linux - 一次性*级别*-触发 epoll() : Does EPOLLONESHOT imply EPOLLET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39173429/
请考虑以下程序: #define _GNU_SOURCE #include #include #include #include #include #include #include i
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 1 年前。 Improve
我在边缘触发模式下使用epoll。为了避免饥饿,代码从一个套接字一次读取 MAX_FREAD_LENGTH 字节。随后组装片段直至 EOL 发生。我注意到当 MAX_FREAD_LENGTH 很小时,
进程 B 在管道上进行 epolls (EPOLLIN|EPOLLET)。 进程 A 在管道中写入 1KiB。 进程 B 醒来。 进程 B 从管道中读取 1KiB。 进程 A 在管道中写入 1KiB。
带有 EPOLLOUT 的 epoll TCP | EPOLLET只获取一次事件,即使我在获取第一个事件后发送数据也会超时。 而在UDP中,epoll在发送新数据后不断获取EPOLLOUT事件。 你能
写入器程序使用固定缓冲区的多次写入发送几 MB(几乎没有延迟)。处理程序在 EPOLLOUT | 中注册。 EPOLLET 标志。 MTU=16KB,写入缓冲区 = 4KB 或更多。 write(..
我在边缘触发模式下使用 linux epoll。 每次有新连接传入时,我都会使用 EPOLLIN|EPOLLOUT|EPOLLET 标志将文件描述符添加到 epoll。我的第一个问题是:在 epoll
人 epoll: The suggested way to use epoll as an edge-triggered (EPOLLET) interface is as follows:
epoll 联机帮助页说如果没有完成读取,用 EPOLLET(edge triggered) 注册的 fd 不应该通知两次 EPOLLIN。 因此,在 EPOLLIN 之后,您需要在 epoll_wa
是否可以在一次性级触发模式下使用epoll? 当我搜索时,我找不到任何关于它的信息;好像大家都用边沿触发的方式。 最佳答案 When the EPOLLONESHOT flag is selected
我是一名优秀的程序员,十分优秀!