base/common/src/main/com/thesett/common/util/concurrent/BaseUnaryCondition.java
public void await(T t) throws InterruptedException
    {
        synchronized (monitor)
        {
            long waitNanos = evaluateWithWaitTimeNanos(t);

            // Loop forever until all conditions pass or the thread is interrupted.
            while (waitNanos > 0)
            {
                // If some conditions failed, then wait for the shortest wait time, or until the thread is woken up by
                // a signal, before re-evaluating conditions.
                long milliPause = waitNanos / 1000000;
                int nanoPause = (int) (waitNanos % 1000000);

                monitor.wait(milliPause, nanoPause);

                waitNanos = evaluateWithWaitTimeNanos(t);
            }
        }
    }
public void await(T t) throws InterruptedException
    {
        synchronized (monitor)
        {
            long waitNanos = evaluateWithWaitTimeNanos(t);

            // Loop forever until all conditions pass or the thread is interrupted.
            while (waitNanos > 0)
            {
                // If some conditions failed, then wait for the shortest wait time, or until the thread is woken up by
                // a signal, before re-evaluating conditions.
                long milliPause = waitNanos / 1000000;
                int nanoPause = (int) (waitNanos % 1000000);

                monitor.wait(milliPause, nanoPause);

                waitNanos = evaluateWithWaitTimeNanos(t);
            }
        }
    }
public void await ( T t ) throws InterruptedException { synchronized ( monitor ) { long waitNanos = evaluateWithWaitTimeNanos ( t ) ; // Loop forever until all conditions pass or the thread is interrupted. while ( waitNanos > 0 ) { // If some conditions failed, then wait for the shortest wait time, or until the thread is woken up by // a signal, before re-evaluating conditions. long milliPause = waitNanos / 1000000 ; int nanoPause = ( int ) ( waitNanos % 1000000 ) ; monitor . wait ( milliPause , nanoPause ) ; waitNanos = evaluateWithWaitTimeNanos ( t ) ; } } }
Wait for the predicate to become true on the specified object.

@param  t The object to test for predicate membership.

@throws InterruptedException If interrupted whilst waiting.
Wait for the predicate to become true on the specified object .