question: shuts down the thread that consumes the queued packets and also stops the pool of threads that actually send the packets to the remote servers . concode_field_sep Queue<Packet> packetQueue concode_elem_sep OutgoingSessionPromise instance concode_elem_sep BlockingQueue<Packet> packets concode_elem_sep String domain concode_elem_sep Logger Log concode_elem_sep RoutingTable routingTable concode_elem_sep long failureTimestamp concode_elem_sep boolean shutdown concode_elem_sep OutgoingSessionPromise promise concode_elem_sep ThreadPoolExecutor threadPool concode_elem_sep Map<String,PacketsProcessor> packetsProcessors concode_elem_sep Cache<String,byte[]> serversCache concode_field_sep String getDomain concode_elem_sep void init concode_elem_sep void process concode_elem_sep void addPacket concode_elem_sep void processorDone concode_elem_sep void sendPacket concode_elem_sep JID getAddress concode_elem_sep void run concode_elem_sep OutgoingSessionPromise getInstance concode_elem_sep void returnErrorToSender concode_elem_sep boolean isDone
target: void function ( ) { threadPool . shutdown ( ) ; shutdown = true ; }