long start = System.nanoTime();
ChannelGroupFuture future = allChannels.close();
channelFactory.releaseExternalResources();
return future.await(timeout, unit)
&& bossExecutor.awaitTermination(timeout - Cluster.timeSince(start, unit), unit)
&& workerExecutor.awaitTermination(timeout - Cluster.timeSince(start, unit), unit);
}
}