Module: Cond::SymbolGenerator
- Included in:
- CodeSection, ThreadLocal
- Defined in:
- lib/cond/symbol_generator.rb
Class Method Summary collapse
Class Method Details
.gensym ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/cond/symbol_generator.rb', line 13 def gensym @mutex.synchronize { if @recycled.empty? @count.succ! :"|#{@count}" else @recycled.shift end } end |
.recycle(syms) ⇒ Object
24 25 26 27 28 |
# File 'lib/cond/symbol_generator.rb', line 24 def recycle(syms) @mutex.synchronize { @recycled.concat(syms) } end |
.track(object, *syms) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/cond/symbol_generator.rb', line 30 def track(object, *syms) @mutex.synchronize { @object_id_to_sym_list[object.object_id] = syms.flatten ObjectSpace.define_finalizer(object, @finalizer) } end |