class Atomy::CodeLoader::RequireRequest
Attributes
module[RW]
Public Class Methods
new(map, key)
click to toggle source
# File lib/atomy/codeloader.rb, line 24 def initialize(map, key) @map = map @key = key @for = nil @module = nil @loaded = false @remove = true end
Public Instance Methods
current_thread?()
click to toggle source
# File lib/atomy/codeloader.rb, line 40 def current_thread? @for == Thread.current end
lock()
click to toggle source
# File lib/atomy/codeloader.rb, line 44 def lock Rubinius.lock(self) end
passed!()
click to toggle source
# File lib/atomy/codeloader.rb, line 68 def passed! @loaded = true end
remove!()
click to toggle source
# File lib/atomy/codeloader.rb, line 72 def remove! Rubinius.synchronize(Lock) do if @loaded || @remove @map.delete(@key) end end unlock end
take!()
click to toggle source
# File lib/atomy/codeloader.rb, line 35 def take! lock @for = Thread.current end
unlock()
click to toggle source
# File lib/atomy/codeloader.rb, line 48 def unlock Rubinius.unlock(self) end
wait()
click to toggle source
# File lib/atomy/codeloader.rb, line 52 def wait Rubinius.synchronize(Lock) do @remove = false end take! Rubinius.synchronize(Lock) do if @loaded @map.delete @key end end @loaded end