當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。