LocalKey — 스레드 지역 저장소 키
LocalKey — 스레드 지역 저장소 키
LocalKey는 자기 내용을 소유하는 스레드 지역 저장소(TLS) 키예요. 대상 플랫폼에서 사용 가능한 가장 빠른 구현을 사용해요.
출처: Rust 공식 문서
본문
pub struct LocalKey<T: 'static> { /* private fields */ }
thread_local! 매크로로 인스턴스화되며, 주요 메서드는 with예요. Cell 타입 등을 다루는 헬퍼도 있어요.
주요 메서드
// 스레드 지역 값에 접근하는 클로저를 실행해요.
pub fn with<F, R>(&'static self, f: F) -> R
where
F: FnOnce(&T) -> R
// try_with와는 달리, 스레드 지역 값이 파괴된 상태이거나
// 빌림 규칙에 문제가 있으면 패닉을 일으킬 수 있어요.
pub fn try_with<F, R>(&'static self, f: F) -> Result<R, AccessError>
where
F: FnOnce(&T) -> R
thread_local! 매크로로 선언한 정적 키의 with 메서드는 기본적으로 값을 안전하게 접근하게 해줘요. 값이 드롭된 후 접근하면 AccessError가 발생해요.