public boolean runDelayedAction(boolean isSelectorThread) {

        if(log.isLoggable(Level.FINER))
            log.finer(channel+"Closing channel.  isOnSelectThread="+isSelectorThread);
        
		try {
			channel.closeImpl();
            
            //must wake up selector or socket will not send the TCP FIN packet!!!!! 
            //The above only happens on the client thread...on selector thread, close works fine.
            channel.wakeupSelector();
            
			handler.finished(channel);
		} catch(Exception e) {
			log.log(Level.WARNING, channel+"Exception occurred", e);
			handler.failed(channel, e);
		}
		return true;
	}