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;
}