synchronized(receivers)
boolean acquired; try { lock.writeLock().acquire(); acquired = true; } catch (InterruptedException e) { throw new RuntimeException("Failed to obtain lock", e); } try
   public Iterator iterator()   {      synchronized(receivers)      {         return receivers.iterator();      }   }