class Concurrent::Collection::CopyOnWriteObserverSet

def notify_to(observers, *args)

def notify_to(observers, *args)
  raise ArgumentError.new('cannot give arguments and a block') if block_given? && !args.empty?
  observers.each do |observer, function|
    args = yield if block_given?
    observer.send(function, *args)
  end
end