synchronize in ruby

Tags:

역시 Ruby Idioms의 내용입니다. synchronize 를 쓰려면 매번 새로운 변수를 선언해야하는데 그것을 생략하는 기법입니다.

먼저, default 값을 Mutex.new 가 되도록 다음과 같이 해시를 선언합니다.

mlock = Hash.new {|h,k| h[k] = Mutex.new }

다음 뮤텍스가 필요하면,

mlock["entry"].synchronize do
  # blah
end

와 같이 쓴다는 거죠. 장단점은 있을 것입니다. 오타 하나만 잘못치면 백만년가도 못찾을 수 있는 버그를 만들 수 있다거나. 예를들어, lenght 를 legnth 라고 쓴다던가. :-)

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *