[#1654] Notify close future after the close was complete
This commit is contained in:
parent
cffbba94ee
commit
15279b2525
@ -515,15 +515,22 @@ public abstract class AbstractChannel extends DefaultAttributeMap implements Cha
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (closeFuture.isDone()) {
|
||||||
|
// Closed already.
|
||||||
|
promise.setSuccess();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
boolean wasActive = isActive();
|
boolean wasActive = isActive();
|
||||||
if (closeFuture.setClosed()) {
|
|
||||||
ChannelOutboundBuffer outboundBuffer = this.outboundBuffer;
|
ChannelOutboundBuffer outboundBuffer = this.outboundBuffer;
|
||||||
this.outboundBuffer = null; // Disallow adding any messages and flushes to outboundBuffer.
|
this.outboundBuffer = null; // Disallow adding any messages and flushes to outboundBuffer.
|
||||||
|
|
||||||
try {
|
try {
|
||||||
doClose();
|
doClose();
|
||||||
|
closeFuture.setClosed();
|
||||||
promise.setSuccess();
|
promise.setSuccess();
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
|
closeFuture.setClosed();
|
||||||
promise.setFailure(t);
|
promise.setFailure(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -544,10 +551,6 @@ public abstract class AbstractChannel extends DefaultAttributeMap implements Cha
|
|||||||
|
|
||||||
deregister(voidPromise());
|
deregister(voidPromise());
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
// Closed already.
|
|
||||||
promise.setSuccess();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user