compiler_fence — 단일 스레드 내 동기화 원자 펜스
compiler_fence — 단일 스레드 내 동기화 원자 펜스
compiler_fence는 단일 스레드 내 동기화를 위한 원자 펜스(atomic fence)예요.
출처: Rust 공식 문서
본문
pub fn compiler_fence(order: Ordering)
fence와 마찬가지로 이 함수는 다른 원자 연산 및 펜스와 동기화를 설정해요. 그러나 fence와 달리 compiler_fence는 같은 스레드 안의 연산과만 동기화를 설정해요.
처음에는 스레드 내 코드는 보통 이미 완전히 순서화되어 추가 동기화가 필요 없으므로 쓸모없어 보일 수 있어요. 하지만 코드가 (인터럽트 핸들러나 신호 처리기에서처럼) 원자 메모리 연산과 상호작용할 수 있는 환경에서 실행되는 경우가 있어요. 이런 경우 compiler_fence는 컴파일러의 재정렬을 막아줘요.
order 인자는 Ordering 값(SeqCst, Acquire, Release, AcqRel, Relaxed)을 받아요.