Sha256: a416481250c9851d024d754bc3c9d345c001ba99923de33c720cf2dc0f1d2758
Contents?: true
Size: 921 Bytes
Versions: 1
Compression:
Stored size: 921 Bytes
Contents
require 'monitor' module Redistat module Synchronize class << self def included(base) base.send(:include, InstanceMethods) end def monitor @monitor ||= Monitor.new end def thread_safe monitor.synchronize do @thread_safe ||= false end end def thread_safe=(value) monitor.synchronize do @thread_safe = value end end end # << self module InstanceMethods def thread_safe Synchronize.thread_safe end def thread_safe=(value) Synchronize.thread_safe = value end def monitor Synchronize.monitor end def synchronize(&block) if thread_safe monitor.synchronize(&block) else block.call end end end # InstanceMethods end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
redistat-0.3.0 | lib/redistat/mixins/synchronize.rb |