@atomicStore
@atomicStore
@atomicStore는 포인터가 가리키는 값을 원자적으로(atomically) 저장하는 내장 함수예요. 멀티스레드 환경에서 값이 중간 상태 없이 한 번에 메모리에 반영되도록 할 때 써요. 즉 메모리 순서(ordering) 규칙을 지키면서, 주어진 값을 T 타입의 포인터가 가리키는 위치에 저장한답니다.
본문
이 내장 함수는 T에 대한 포인터를 역참조(dereference)한 뒤, 주어진 값을 원자적으로 저장해요.
T는 포인터, bool, float, 정수, enum, 또는 packed struct여야 해요. 이 타입들만 원자적 저장이 가능하죠.
@atomicStore(comptime T: type, ptr: *T, value: T, comptime ordering: AtomicOrder) void
AtomicOrder는 @import("std").lang.AtomicOrder로 찾을 수 있어요. 메모리 순서를 어떻게 지킬지 이 값으로 결정한답니다.
함께 보면 좋은 것들:
- @atomicLoad — 원자적 읽기
- @atomicRmw — 원자적 읽기-수정-쓰기
- @cmpxchgWeak — 원자적 비교-교환(약한)
- @cmpxchgStrong — 원자적 비교-교환(강한)