docs: private void pruneExpiredTasks() {
          int numberExpiredTasksPruned = pruneHeadTasks(new Predicate<ReceiveQueueBuffer.ReceiveMessageBatchTask>() {
              @Override
              public boolean test(ReceiveMessageBatchTask t) {
                  return t.isExpired() && t.getException() == null;
              }
          });
          // If we pruned any tasks because they are expired we also want to prune any empty tasks
          // afterwards so we have a chance to receive those expired messages again.
          if (numberExpiredTasksPruned > 0) {
              pruneHeadTasks(new Predicate<ReceiveQueueBuffer.ReceiveMessageBatchTask>() {
                  @Override
                  public boolean test(ReceiveMessageBatchTask t) {
                      return t.isEmpty() && t.getException() == null;
                  }
              });
          }
      }