import NIO func eventLoopGroupLifecycle(maxChannels: Int) throws { let group = MultiThreadedEventLoopGroup(numThreads: System.coreCount) defer { _ = try? group.syncShutdownGracefully() } let serverBoot = ServerBootstrap(group: group) let listeningChannel = try serverBoot.bind(host: "127.0.0.1", port: 0).wait() let port = Int(listeningChannel.localAddress!.port!) let clientBoot = ClientBootstrap(group: group) var clients: [EventLoopFuture] = [] for _ in 0..