Raku의 act — Supply에 단일 스레드로 처리되는 액션 달기
Raku의 act — Supply에 단일 스레드로 처리되는 액션 달기
Supply(데이터 흐름)에 콜백을 붙일 때 보통 tap을 쓰는데, 공유 상태를 건드리거나 여러 스레드가 동시에 실행되면 위험한 경우에는 act가 필요해요. act는 지정한 콜백이 한 번에 단 하나의 스레드에서만 실행되는 것을 보장합니다.
method act(Supply:D: &actor, *%others)
주어진 supply에 주어진 코드(&actor)로 tap을 만들어요. tap과 달리, 지정된 코드는 반드시 한 번에 하나의 스레드에서만 실행됩니다. 그래서 정리하면, act는 기본적으로 tap과 같은 역할을 하면서 실행의 단일 스레드성을 추가로 보장하는 녀석이에요. *%others는 실제로는 tap이 받는 자리에 함께 전달되는 옵션 파라미터를 의미합니다.