/** * Close connection. * @param forced flag indicating if forced (e.g. forced disconnect) is required */ public void close(boolean forced) { synchronized (this) { // already closed check if (closed) return; closed = true; Timer.cancel(taskID); // remove from registry context.getTransportRegistry().remove(socketAddress, priority); } // flush first if (!forced) flushInternal(); freeSendBuffers(); if (forced) closedNotifyContext(); closedNotifyClients(); context.getLogger().finer("Connection to " + socketAddress + " closed."); context.getReactor().unregisterAndClose(channel); }
closedNotifyContext(); closedNotifyClients();