synchronized(receivers)
boolean acquired; try { lock.writeLock().acquire(); acquired = true; } catch (InterruptedException e) { throw new RuntimeException("Failed to obtain lock", e); } try
   public boolean add(Receiver r)   {      synchronized(receivers)      {         if (receivers.contains(r))         {            return false;         }         receivers.add(r);      }      return true;   }