private CompletableFuture send()

in src/main/java/com/spotify/google/cloud/pubsub/client/Publisher.java [288:310]


    private CompletableFuture<String> send(final Message message) {
      final CompletableFuture<String> future = new CompletableFuture<>();

      // Enforce queue size limit
      int currentSize;
      int newSize;
      do {
        currentSize = size.get();
        newSize = currentSize + 1;
        if (newSize > queueSize) {
          future.completeExceptionally(new QueueFullException());
          return future;
        }
      } while (!size.compareAndSet(currentSize, newSize));

      // Enqueue outgoing message
      queue.add(new QueuedMessage(message, future));

      // Schedule future batch sending
      scheduleSend(newSize);

      return future;
    }