首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何停止从tokio::io::lines流中读取内容?

如何停止从tokio::io::lines流中读取内容?
EN

Stack Overflow用户
提问于 2019-06-12 13:57:37
回答 1查看 1.2K关注 0票数 4

我想终止从tokio::io::lines流中读取。我将它与oneshot的未来合并,并终止了它,但tokio::run仍在工作。

代码语言:javascript
复制
use futures::{sync::oneshot, *}; // 0.1.27
use std::{io::BufReader, time::Duration};
use tokio::prelude::*; // 0.1.21

fn main() {
    let (tx, rx) = oneshot::channel::<()>();
    let lines = tokio::io::lines(BufReader::new(tokio::io::stdin()));
    let lines = lines.for_each(|item| {
        println!("> {:?}", item);
        Ok(())
    });

    std::thread::spawn(move || {
        std::thread::sleep(Duration::from_millis(5000));
        println!("system shutting down");
        let _ = tx.send(());
    });

    let lines = lines.select2(rx);

    tokio::run(lines.map(|_| ()).map_err(|_| ()));
}

我怎样才能停止阅读这篇文章呢?

EN

回答 1

Stack Overflow用户

发布于 2019-06-13 07:31:58

谢谢你的评论和纠正我的句子。

我试图阻止这个非阻塞的Future,并成功了。

代码语言:javascript
复制
let lines = Interval::new(Instant::now(), Duration::from_secs(1));

我的轻描淡写是,在这种情况下,用tokio threadpool::blocking包装阻塞Future是可行的。我待会再试。

非常感谢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56555513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档