code: <V> Map<AsyncLogger, V> waitForWriteQuorum(QuorumCall<AsyncLogger, V> q,
        int timeoutMs, String operationName) throws IOException {
      int majority = getMajoritySize();
      int numLoggers = loggers.size();
      checkMajoritySize(majority, numLoggers);
      return waitForQuorumInternal(q, loggers.size(), majority, numLoggers
          - majority + 1, majority, timeoutMs, operationName);
    }
docs: Wait for a quorum of loggers to respond to the given call. If a quorum
  can't be achieved, throws a QuorumException.
  @param q the quorum call
  @param timeoutMs the number of millis to wait
  @param operationName textual description of the operation, for logging
  @return a map of successful results
  @throws QuorumException if a quorum doesn't respond with success
  @throws IOException if the thread is interrupted or times out