Github user kl0u commented on a diff in the pull request: https://github.com/apache/flink/pull/5062#discussion_r154885503 --- Diff: flink-queryable-state/flink-queryable-state-client-java/src/main/java/org/apache/flink/queryablestate/network/Client.java --- @@ -133,7 +134,7 @@ public String getClientName() { } public CompletableFuture<RESP> sendRequest(final InetSocketAddress serverAddress, final REQ request) { - if (shutDown.get()) { + if (!clientShutdownFuture.compareAndSet(null, null)) { --- End diff -- Well, I agree that the code looks clearer, but the `compareAndSet` guarantees atomicity. While `get()` and then compare, does not.
---