code: public void fireSessionDestroyed(IoSession session) {
          // Try to remove the remaining empty session set after removal.
          if (managedSessions.remove(session.getId()) == null) {
              return;
          }
  
          // Fire session events.
          session.getFilterChain().fireSessionClosed();
  
          // Fire listener events.
          try {
              for (IoServiceListener l : listeners) {
                  try {
                      l.sessionDestroyed(session);
                  } catch (Throwable e) {
                      ExceptionMonitor.getInstance().exceptionCaught(e);
                  }
              }
          } finally {
              // Fire a virtual service deactivation event for the last session of the connector.
              if (session.getService() instanceof IoConnector) {
                  boolean lastSession;
                  synchronized (managedSessions) {
                      lastSession = managedSessions.isEmpty();
                  }
                  if (lastSession) {
                      fireServiceDeactivated();
                  }
              }
          }
      }
docs: Calls {@link IoServiceListener#sessionDestroyed(IoSession)} for all registered listeners.