flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tillrohrmann <...@git.apache.org>
Subject [GitHub] flink pull request #4993: [FLINK-7974][FLINK-7975][QS] Wait for shutdown in ...
Date Fri, 10 Nov 2017 13:14:31 GMT
Github user tillrohrmann commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4993#discussion_r150226661
  
    --- Diff: flink-queryable-state/flink-queryable-state-client-java/src/main/java/org/apache/flink/queryablestate/network/Client.java
---
    @@ -166,27 +168,39 @@ public String getClientName() {
     	 *
     	 * <p>After a call to this method, all returned futures will be failed.
     	 */
    -	public void shutdown() {
    +	public CompletableFuture<Boolean> shutdown() {
    +		final CompletableFuture<Boolean> shutdownFuture = new CompletableFuture<>();
    +
     		if (shutDown.compareAndSet(false, true)) {
    +			final List<CompletableFuture<?>> connectionFutures = new ArrayList<>();
     			for (Map.Entry<InetSocketAddress, EstablishedConnection> conn : establishedConnections.entrySet())
{
     				if (establishedConnections.remove(conn.getKey(), conn.getValue())) {
    -					conn.getValue().close();
    +					connectionFutures.add(conn.getValue().close());
     				}
     			}
     
     			for (Map.Entry<InetSocketAddress, PendingConnection> conn : pendingConnections.entrySet())
{
     				if (pendingConnections.remove(conn.getKey()) != null) {
    -					conn.getValue().close();
    +					connectionFutures.add(conn.getValue().close());
     				}
     			}
     
    -			if (bootstrap != null) {
    -				EventLoopGroup group = bootstrap.group();
    -				if (group != null) {
    -					group.shutdownGracefully(0L, 10L, TimeUnit.SECONDS);
    -				}
    -			}
    +			CompletableFuture.allOf(connectionFutures.toArray(new CompletableFuture<?>[connectionFutures.size()])).thenRun(
    +					() -> {
    +						if (bootstrap != null) {
    +							EventLoopGroup group = bootstrap.group();
    +							if (group != null) {
    +								group.shutdownGracefully(0L, 10L, TimeUnit.SECONDS)
    --- End diff --
    
    why not setting the timeout to `0`?


---

Mime
View raw message