如何在mio中复制POLLPRI的poll行为?

时间:2019-03-21 09:57:25

标签: io rust epoll

我有一个驱动程序,当新数据准备就绪时会发出POLLPRI事件,因为该设备始终可读(最后一个数据)。

1 个答案:

答案 0 :(得分:4)

您可以使用priority()

  

返回就绪表示优先(EPOLLPRI)准备状态

示例(基于文档)

use mio::net::TcpStream;
use mio::unix::UnixReady;
use mio::{Poll, PollOpt, Ready, Token};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let addr = "216.58.193.68:80".parse()?;
    let socket = TcpStream::connect(&addr)?;

    let poll = Poll::new()?;

    poll.register(
        &socket,
        Token(0),
        Ready::readable() | UnixReady::priority() | UnixReady::error(),
        PollOpt::edge(),
    )?;

    Ok(())
}