From: Oliver Cat Date: 2010-04-28T20:39:16+09:00 Subject: Mutex Hi all, I've been reading the RailsDispatch blog, and have been looking at this code. class BlacklistConstraint def initialize @ips = Blacklist.retrieve_ips @mutex = Mutex.new @last_update = Time.now end def matches?(request) @mutex.synchronize do if (Time.now - @last_update) > 3600 @ips = Blacklist.retrieve_ips @last_update = Time.now end end !@ips.include?(request.remote_ip) end end What interests me is the 'matches?' method, specifically the mutex.synchronize block. I'm wondering what is the benefit of this code, and how it works? Is it so other attempts to call Blacklist.retrieve_ips are blocked, and if so, should the mutex be implemented in the Blacklist class? thanks for reading. -- Posted via http://www.ruby-forum.com/.