class Concurrent::RubyThreadLocalVar

def allocate_storage

@!visibility private
def allocate_storage
  @index = LOCK.synchronize do
    FREE.pop || begin
      result = @@next
      @@next += 1
      result
    end
  end
  ObjectSpace.define_finalizer(self, self.class.threadlocal_finalizer(@index))
end