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


Rust OnceState.is_poisoned用法及代碼示例


本文簡要介紹rust語言中 std::sync::OnceState.is_poisoned 的用法。

用法

pub fn is_poisoned(&self) -> bool

如果在調用傳遞給 Once::call_once_force() 的閉包之前關聯的 Once 已中毒,則返回 true

例子

中毒的 Once

use std::sync::Once;
use std::thread;

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

// poison the once
let handle = thread::spawn(|| {
    INIT.call_once(|| panic!());
});
assert!(handle.join().is_err());

INIT.call_once_force(|state| {
    assert!(state.is_poisoned());
});

未中毒的 Once

use std::sync::Once;

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

INIT.call_once_force(|state| {
    assert!(!state.is_poisoned());
});

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::sync::OnceState.is_poisoned。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。