code: public static Boolean untilTrue(Callable<Boolean> callable, long timeout, TimeUnit unit) throws SystemException {
          return SleepBuilder.<Boolean>sleep()
                  .withComparer(argument -> argument)
                  .withTimeout(timeout, unit)
                  .withStatement(callable)
                  .build();
      }
docs: Causes the current thread to wait until the callable is returning
  {@code true}, or the specified waiting time elapses.
  
  <p>
  If the callable returns {@code false} then this method returns
  immediately with the value returned by callable.
  
  <p>
  Any {@code InterruptedException}'s are suppress and logged. Any
  {@code Exception}'s thrown by callable are propagate as SystemException
  
  @param callable callable checked by this method
  @param timeout the maximum time to wait
  @param unit the time unit of the {@code timeout} argument
  @return {@code Boolean} returned by callable method
  @throws SystemException if callable throws exception