Method: Wref::Map#each_key

Defined in:
lib/wref/map.rb

#each_key(&block) ⇒ Object



172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'lib/wref/map.rb', line 172

def each_key(&block)
  enum = Enumerator.new do |yielder|
    ids = nil
    @mutex.synchronize do
      ids = @map.keys
    end

    ids.each do |id|
      if obj = get(id)
        yielder << id
      end
    end
  end

  if block
    enum.each(&block)
  else
    return enum
  end
end