@Override
  public synchronized void start() {
    if (live) {
      return;
    }
    if (!serverSocketChannel.isOpen()) {
      throw new IllegalStateException("ConnectionManager is already shutdown. Cannot start!");
    }

    live = true;
    logger.finest("Starting ConnectionManager and IO selectors.");

    ioThreadingModel.start();
    startAcceptorThread();
  }