question: public ListenableSocketChannel ( SocketChannel channel , Executor executor , AsyncSelector selectorThread ) throws IOException { logger . debug ( "ListenableSocketChannel: channel={}" , channel ) ; if ( channel == null || executor == null ) throw new IllegalArgumentException ( ) ; if ( channel . isBlocking ( ) ) throw new IllegalArgumentException ( "channel arg must be in non-blocking mode. (SocketChannel.configureBlocking(false))" ) ; this . channel = channel ; this . executor = executor ; this . selector = selectorThread ; selector . register ( channel , 0 , selListener ) ; }
target:  Create async-socket wrapper over given socket channel, given listener handling thread, and given selector thread.