PoisonError — 잠금 획득 독 오류

PoisonError — 잠금 획득 독 오류

PoisonError는 잠금을 획득할 때마다 반환될 수 있는 오류 타입이에요. 잠금이 확보된 상태에서 스레드가 실패(패닉)하면 MutexRwLock 양쪽 모두 독(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())처럼 사용해 패닉이 발생한 스레드의 흔적을 무시하고 값을 계속 쓸 수 있어요.

더 알아보기 (Learn more)