Sha256: e5a9ade1fe303a60944dd8b63cd588a49c02b84b983de5f3dd636f2d1fe5c22c
Contents?: true
Size: 573 Bytes
Versions: 1
Compression:
Stored size: 573 Bytes
Contents
require "thread" require "forwardable" module ClimateControl class Environment extend Forwardable def initialize @semaphore = Mutex.new @owner = nil end def_delegators :env, :[]=, :to_hash, :[], :delete def synchronize if @owner == Thread.current return yield if block_given? end @semaphore.synchronize do begin @owner = Thread.current yield if block_given? ensure @owner = nil end end end private def env ENV end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
climate_control-0.2.0 | lib/climate_control/environment.rb |