flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From zentol <...@git.apache.org>
Subject [GitHub] flink pull request #5038: [FLINK-7880][FLINK-7975][FLINK-7974][QS] QS test i...
Date Tue, 21 Nov 2017 15:04:16 GMT
Github user zentol commented on a diff in the pull request:

    https://github.com/apache/flink/pull/5038#discussion_r152298240
  
    --- Diff: flink-queryable-state/flink-queryable-state-client-java/src/main/java/org/apache/flink/queryablestate/network/Client.java
---
    @@ -312,32 +345,43 @@ private void handInChannel(Channel channel) {
     		/**
     		 * Close the connecting channel with a ClosedChannelException.
     		 */
    -		private void close() {
    -			close(new ClosedChannelException());
    +		private CompletableFuture<?> close() {
    +			return close(new ClosedChannelException());
     		}
     
     		/**
     		 * Close the connecting channel with an Exception (can be {@code null})
     		 * or forward to the established channel.
     		 */
    -		private void close(Throwable cause) {
    -			synchronized (connectLock) {
    -				if (!closed) {
    -					if (failureCause == null) {
    -						failureCause = cause;
    -					}
    +		private CompletableFuture<?> close(Throwable cause) {
    +			CompletableFuture<?> future = new CompletableFuture<>();
    +			if (connectionShutdownFuture.compareAndSet(null, future)) {
    +				synchronized (connectLock) {
    +					if (!closed) {
    --- End diff --
    
    this seems unnecessary, doesn't the check at L358 guarantee that the entire branch is
only executed once?


---

Mime
View raw message