[#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;
|
||||
}
|
||||
|
||||
if (closeFuture.isDone()) {
|
||||
// Closed already.
|
||||
promise.setSuccess();
|
||||
return;
|
||||
}
|
||||
|
||||
boolean wasActive = isActive();
|
||||
if (closeFuture.setClosed()) {
|
||||
ChannelOutboundBuffer outboundBuffer = this.outboundBuffer;
|
||||
this.outboundBuffer = null; // Disallow adding any messages and flushes to outboundBuffer.
|
||||
|
||||
try {
|
||||
doClose();
|
||||
closeFuture.setClosed();
|
||||
promise.setSuccess();
|
||||
} catch (Throwable t) {
|
||||
closeFuture.setClosed();
|
||||
promise.setFailure(t);
|
||||
}
|
||||
|
||||
|
@ -544,10 +551,6 @@ public abstract class AbstractChannel extends DefaultAttributeMap implements Cha
|
|||
|
||||
deregister(voidPromise());
|
||||
}
|
||||
} else {
|
||||
// Closed already.
|
||||
promise.setSuccess();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue
Block a user