question: public void close ( ) { synchronized ( asyncCloseExecutors ) { if ( ! this . closed ) { this . closed = true ; for ( ThreadPoolExecutor pool : asyncCloseExecutors . values ( ) ) { pool . shutdown ( ) ; } asyncCloseExecutors . clear ( ) ; } } }
target:  Call close when you are all done with your socket closer. If you call asyncClose after close is called then the asyncClose will be done synchronously.