相关疑难解决方法(0)

Rust为线程或函数创建超时的正确方法是什么?

这是我的代码:

use std::net;
use std::thread;
extern crate argparse;
use argparse::{ArgumentParser, StoreTrue, Store};

fn scan_port(host: &str, port: u16) -> bool {
    let host = host.to_string();
    let port = port;
    let t = thread::spawn(move || net::TcpStream::connect((host.as_str(), port)).is_ok());

    t.join().unwrap()
}
Run Code Online (Sandbox Code Playgroud)

如果连接未在N秒内完成,如何创建线程将被终止或终止的情况?

所有这一切的原因是Rust无法设置套接字连接超时,因此我无法确保程序不会卡住.

multithreading rust

6
推荐指数
2
解决办法
3243
查看次数

有没有办法在给定的时间后使单元/集成测试失败?

我正在 Rust 中实现一个虚拟机作为练习。一些集成测试在该虚拟机上运行小程序并对最终结果做出断言。

但是,可能会发生错误导致机器陷入无限循环,这意味着cargo test永远不会完成。

有没有办法在给定的时间后使单元/集成测试失败?也许类似于#[should_panic],但相反,说,#[time_limit(500)]

testing unit-testing rust

5
推荐指数
1
解决办法
78
查看次数

标签 统计

rust ×2

multithreading ×1

testing ×1

unit-testing ×1