Raku의 atomic-inc-fetch — 증가 후의 값을 돌려받는 원자적 증가

Raku의 atomic-inc-fetch — 증가 후의 값을 돌려받는 원자적 증가

atomic-fetch-dec가 감소 전 값을 돌려줬다면, atomic-inc-fetch는 반대 순서예요. 네이티브 정수를 원자적으로 1 증가시키면서, 이름이 암시하듯 증가시킨 뒤의 값을 돌려받아요. 하드웨어가 제공하는 원자적 연산으로 수행되므로 락 없이도 안전해요.

multi atomic-inc-fetch(atomicint $ is rw)

연산 자체가 원자적이라 스레드 사이 경합(race condition) 걱정이 없어요. 증가 결과를 값으로 반환하므로, '증가하고 그 결과를 바로 써야 하는' 케이스에 잘 맞아요.

출처: Raku 공식 문서 — atomic-inc-fetch

본문

atomicint 타입의 값을 받아 원자적으로 1 증가시키고, 증가된 값이 반환돼요. 넘침(overflow)은 조용히 감싸져요(wrap). 락을 걸지 않고도 경합 걱정을 덜 수 있다는 점이 핵심이에요.