From b8cab34f12298ea28cbc0cd4584ac41e14935b7d Mon Sep 17 00:00:00 2001 From: Fred78290 Date: Tue, 17 Dec 2024 11:19:39 +0100 Subject: [PATCH] FEAT: Expose closeFuture --- Sources/Lib/Forwarder.swift | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/Sources/Lib/Forwarder.swift b/Sources/Lib/Forwarder.swift index a5ef617..f70e5bd 100644 --- a/Sources/Lib/Forwarder.swift +++ b/Sources/Lib/Forwarder.swift @@ -25,29 +25,27 @@ public struct PortForwarderClosure { let channels : [EventLoopFuture] private let on: EventLoop + public var closeFuture: EventLoopFuture { + get { + return EventLoopFuture.andAllComplete(self.channels.map { future in + future.flatMap { channel in + channel.closeFuture + } + }, on: on) + } + } + init(_ channels: [EventLoopFuture], on: EventLoop) { self.channels = channels self.on = on } public func get() async throws { - let closing = self.channels.map { future in - future.flatMap { channel in - channel.closeFuture - } - } - - try await EventLoopFuture.andAllComplete(closing, on: on).get() + try await self.closeFuture.get() } public func wait() throws { - let closing = self.channels.map { future in - future.flatMap { channel in - channel.closeFuture - } - } - - try EventLoopFuture.andAllComplete(closing, on: on).wait() + try self.closeFuture.wait() } }