docs: @Override
     public int waitFor(long timeout, TimeUnit unit) throws InterruptedException
     {
        if (timeout == 0) {
           exitPending.await();
        }
        else if (!exitPending.await(timeout, unit)) {
           return Integer.MIN_VALUE;
        }
  
        return exitCode.get();
     }