in ordering-keys-prober/src/main/java/com/google/cloud/pubsub/prober/Prober.java [441:478]
public synchronized void shutdown() {
if (shutdown || !started) {
return;
}
logger.log(Level.INFO, "Shutting down");
shutdown = true;
if (generatePublishesFuture != null) {
generatePublishesFuture.cancel(true);
}
if (publisher != null) {
publisher.shutdown();
}
try {
Futures.allAsList(awaitingAckFutures).get();
} catch (InterruptedException | ExecutionException e) {
logger.log(Level.WARNING, "Could not send acks", e);
}
for (Subscriber s : subscribers) {
if (s != null) {
s.stopAsync().awaitTerminated();
}
}
if (subscriptionType == SubscriptionType.PULL) {
for (Future<?> future : pullSubscriberFutures) {
future.cancel(true);
try {
future.get();
} catch (InterruptedException | ExecutionException e) {
logger.log(Level.INFO, "Interruption shutting down pull subscriber", e);
}
}
}
cleanup();
}