code: public void waitFor(final Object monitor, final boolean ignoreInterrupts)
  	{
  		synchronized (monitor)
  		{
  			try
  			{
  				monitor.wait(this.getTimeLeft(TimeUnit.MILLISECONDS));
  			}
  			catch (InterruptedException e)
  			{
  				if (!ignoreInterrupts)
  					return;
  			}
  		}
  
  		return;
  	}
docs: Waits on the listed monitor until it returns or until this deadline has expired; if <code>mayInterrupt</code> is true then
  an interrupt will cause this method to return true
  
  @param ignoreInterrupts
  false if the code should return early in the event of an interrupt, otherwise true if InterruptedExceptions should be
  ignored