I see a protected shutdownOutput0 method in AbstractEpollStreamChannel but there is no public shutdownOutput in EpollDomainSocketChannel.
I suppose shutdownOutput implementation from EpollSocketChannel can be moved to AbstractEpollStreamChannel:
@Override
public ChannelFuture shutdownOutput(final ChannelPromise promise) {
Executor closeExecutor = ((EpollSocketChannelUnsafe) unsafe()).prepareToClose();
if (closeExecutor != null) {
closeExecutor.execute(new OneTimeTask() {
@Override
public void run() {
shutdownOutput0(promise);
}
});
} else {
EventLoop loop = eventLoop();
if (loop.inEventLoop()) {
shutdownOutput0(promise);
} else {
loop.execute(new OneTimeTask() {
@Override
public void run() {
shutdownOutput0(promise);
}
});
}
}
return promise;
}
I expect this change to help with docker-java/docker-java#472. If you consider this to be a valid solution then I can create a pull request.
I see a protected
shutdownOutput0method inAbstractEpollStreamChannelbut there is no publicshutdownOutputinEpollDomainSocketChannel.I suppose
shutdownOutputimplementation fromEpollSocketChannelcan be moved toAbstractEpollStreamChannel:I expect this change to help with docker-java/docker-java#472. If you consider this to be a valid solution then I can create a pull request.