atomic_signal_fence

atomic_signal_fence (신호 처리기용 메모리 펜스)

같은 스레드의 신호 처리기와 그 스레드 사이의, 비원자적 및 relaxed 원자 접근의 메모리 동기화 순서를 세우는 펜스예요. <atomic> 헤더, C++11부터.

출처: cppreference

본문

atomic_signal_fenceorder가 지시하는 대로, 스레드와 같은 스레드에서 실행되는 신호 처리기 사이의 메모리 동기화 순서를 세워요.

extern "C" void atomic_signal_fence( std::memory_order order ) noexcept;

std::atomic_thread_fence와 동등하지만, CPU 메모리 순서 명령은 발행하지 않아요. 컴파일러에 의한 명령 재배치만 order가 지시하는 대로 억제해요. 예를 들어:

  • release 의미의 펜스: 이후의 쓰기 앞으로 읽기/쓰기가 옮겨지는 것을 막아요.
  • acquire 의미의 펜스: 이전의 읽기 앞으로 읽기/쓰기가 옮겨지는 것을 막아요.
  • 매개변수 order: 이 펜스가 실행하는 메모리 순서.
  • 반환 값: 없음.

전형적인 용도는 신호 처리기가 보통 스레드와 공유하는 플래그를 읽을 때, 읽기/쓰기의 순서를 보장하는 것이에요. thread fence와 달리 하드웨어 명령이 없으므로 더 가볍지만, 신호 처리기 한정의 약한 순서 보장만 해요.

더 알아보기 (Learn more)

cppreference