读两个阻塞迭代器

时间:2015-09-08 03:02:42

标签: rust

我使用Rust websocket library与事物交谈,我有一个看起来像这样的线程:

thread::spawn(move || {
    while let Ok(Message::Text(text)) = receiver.recv_message() {
        /* Do some stuff */
    }
});

上面的接收器也可以是阻塞迭代器:

thread::spawn(move || {
    for message in receiver.incoming_messages() {
        /* Do same stuff */
    }
});

我想向这个帖子发送一个信号告诉它停止做事。我认为mpsc::channel对于这个信号发送会很棒。 select!似乎是要走的路,但只有当所有频道都是mpsc::channel类型时,它才有效。

是否可以连接两个阻塞迭代器并在数据进入时提供输出?或者这个问题的任何其他解决方案?我想避免为每个输入源创建一个线程并管理我自己的队列。

0 个答案:

没有答案