PoisonError — 잠금 획득 독 오류
PoisonError — 잠금 획득 독 오류
PoisonError는 잠금을 획득할 때마다 반환될 수 있는 오류 타입이에요. 잠금이 확보된 상태에서 스레드가 실패(패닉)하면 Mutex와 RwLock 양쪽 모두 독(poison)돼요.
출처: Rust 공식 문서
본문
pub struct PoisonError<T> { /* private fields */ }
주요 메서드
// 독(poison) 상태에서 보호되던 값을 반환해요.
pub fn into_inner(self) -> T
// 독(poison) 상태를 무시하고 보호된 값을 꺼내요.
pub fn get_ref(&self) -> &T
// 독(poison) 상태를 무시하고 보호된 값을 가변 참조로 꺼내요.
pub fn get_mut(&mut self) -> &mut T
보통은 lock().unwrap_or_else(|e| e.into_inner())처럼 사용해 패닉이 발생한 스레드의 흔적을 무시하고 값을 계속 쓸 수 있어요.