Javadoc
Called exactly once when the
close() method is invoked; the actual close operation should take place here.
This method must call
#closeComplete(), directly or indirectly, for the close operation to finish
(it may happen in another thread but it must happen).
This method should not expect the
#closeComplete() call to be made from another thread from the same thread pool
that may cause
#close(). As close will block, this can result in situations where all threads in the pool are
blocked on
#close() method calls, which means the
#closeComplete() will never be run.