docs: public void printInitialStatusUpdates()
      {
          long lastPrint = System.nanoTime();
          try {
              WarningsPrinter warningsPrinter = new ConsoleWarningsPrinter(console);
              while (client.isRunning()) {
                  try {
                      // exit status loop if there is pending output
                      if (client.currentData().getData() != null) {
                          return;
                      }
  
                      // check if time to update screen
                      boolean update = nanosSince(lastPrint).getValue(SECONDS) >= 0.5;
  
                      // check for keyboard input
                      int key = readKey();
                      if (key == CTRL_P) {
                          client.cancelLeafStage();
                      }
                      else if (key == CTRL_C) {
                          updateScreen(warningsPrinter);
                          update = false;
                          client.close();
                      }
                      else if (toUpperCase(key) == 'D') {
                          debug = !debug;
                          console.resetScreen();
                          update = true;
                      }
  
                      // update screen
                      if (update) {
                          updateScreen(warningsPrinter);
                          lastPrint = System.nanoTime();
                      }
  
                      // fetch next results (server will wait for a while if no data)
                      client.advance();
                  }
                  catch (RuntimeException e) {
                      log.debug(e, "error printing status");
                      if (debug) {
                          e.printStackTrace(out);
                      }
                  }
              }
          }
          finally {
              console.resetScreen();
          }
      }