当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust Once.is_completed用法及代码示例


本文简要介绍rust语言中 std::sync::Once.is_completed 的用法。

用法

pub fn is_completed(&self) -> bool

如果某些 call_once() 调用已成功完成,则返回 true。具体来说,is_completed 将在以下情况下返回 false:

此函数返回false 并不意味着 Once 尚未执行。例如,它可能在 is_completed 开始执行和它返回之间的时间内执行,在这种情况下,false 返回值将是陈旧的(但仍然允许)。

例子

use std::sync::Once;

static INIT: Once = Once::new();

assert_eq!(INIT.is_completed(), false);
INIT.call_once(|| {
    assert_eq!(INIT.is_completed(), false);
});
assert_eq!(INIT.is_completed(), true);
use std::sync::Once;
use std::thread;

static INIT: Once = Once::new();

assert_eq!(INIT.is_completed(), false);
let handle = thread::spawn(|| {
    INIT.call_once(|| panic!());
});
assert!(handle.join().is_err());
assert_eq!(INIT.is_completed(), false);

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::sync::Once.is_completed。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。