code: boolean spinUntilBytesAvailable(long waitTimeMicroSec) {
          long start = System.nanoTime();
          while (availableBytes() < 1) {
              long delta = System.nanoTime() - start;
              if (delta > waitTimeMicroSec * 1000) {
                  return false;
              }
          }
          return true;
      }
docs: Spins until the timeout or the condition is met.
  This method will repeatedly poll the available bytes, so it should not have any side effects.
  
  @param waitTimeMicroSec The time to wait for the condition to be true in microseconds
  @return true if the condition ended the spin, false if the tim