class Corleone::Pool
Public Class Methods
new(&block)
click to toggle source
# File lib/corleone/pool.rb, line 3 def initialize(&block) @initializer = block @pool = [] @m = Mutex.new end
Public Instance Methods
get()
click to toggle source
# File lib/corleone/pool.rb, line 9 def get @m.lock return @pool.pop if @pool.length > 0 @initializer.call ensure @m.unlock end
return(value)
click to toggle source
# File lib/corleone/pool.rb, line 17 def return(value) @m.lock @pool << value ensure @m.unlock end