diff --git a/Sources/NIOCore/EventLoop.swift b/Sources/NIOCore/EventLoop.swift index 6aaa061669..0e408b6191 100644 --- a/Sources/NIOCore/EventLoop.swift +++ b/Sources/NIOCore/EventLoop.swift @@ -21,18 +21,13 @@ import Dispatch /// will be notified once the execution is complete. public struct Scheduled { /* private but usableFromInline */ @usableFromInline let _promise: EventLoopPromise + + @usableFromInline let cancellationTask: (() -> Void) @inlinable public init(promise: EventLoopPromise, cancellationTask: @escaping () -> Void) { self._promise = promise - promise.futureResult.whenFailure { error in - guard let err = error as? EventLoopError else { - return - } - if err == .cancelled { - cancellationTask() - } - } + self.cancellationTask = cancellationTask } /// Try to cancel the execution of the scheduled task. @@ -42,6 +37,7 @@ public struct Scheduled { @inlinable public func cancel() { self._promise.fail(EventLoopError.cancelled) + self.cancellationTask() } /// Returns the `EventLoopFuture` which will be notified once the execution of the scheduled task completes. diff --git a/docker/docker-compose.1604.53.yaml b/docker/docker-compose.1604.53.yaml index 0bca0a6aa7..f8c73f26f5 100644 --- a/docker/docker-compose.1604.53.yaml +++ b/docker/docker-compose.1604.53.yaml @@ -18,22 +18,22 @@ services: test: image: swift-nio:16.04-5.3 environment: - - MAX_ALLOCS_ALLOWED_1000_addHandlers=46050 - - MAX_ALLOCS_ALLOWED_1000_addHandlers_sync=39050 + - MAX_ALLOCS_ALLOWED_1000_addHandlers=48050 + - MAX_ALLOCS_ALLOWED_1000_addHandlers_sync=41050 - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlercontext=9050 - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlername=9050 - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlertype=9050 - MAX_ALLOCS_ALLOWED_1000_autoReadGetAndSet=25050 - MAX_ALLOCS_ALLOWED_1000_autoReadGetAndSet_sync=0 - MAX_ALLOCS_ALLOWED_1000_getHandlers=9050 - - MAX_ALLOCS_ALLOWED_1000_getHandlers_sync=36 + - MAX_ALLOCS_ALLOWED_1000_getHandlers_sync=38 - MAX_ALLOCS_ALLOWED_1000_reqs_1_conn=30400 - MAX_ALLOCS_ALLOWED_1000_tcpbootstraps=4050 - MAX_ALLOCS_ALLOWED_1000_tcpconnections=163050 - - MAX_ALLOCS_ALLOWED_1000_udp_reqs=12050 + - MAX_ALLOCS_ALLOWED_1000_udp_reqs=12000 - MAX_ALLOCS_ALLOWED_1000_udpbootstraps=2050 - - MAX_ALLOCS_ALLOWED_1000_udpconnections=89050 - - MAX_ALLOCS_ALLOWED_1_reqs_1000_conn=428050 + - MAX_ALLOCS_ALLOWED_1000_udpconnections=88850 + - MAX_ALLOCS_ALLOWED_1_reqs_1000_conn=428000 - MAX_ALLOCS_ALLOWED_bytebuffer_lots_of_rw=2050 - MAX_ALLOCS_ALLOWED_creating_10000_headers=0 - MAX_ALLOCS_ALLOWED_decode_1000_ws_frames=2050 diff --git a/docker/docker-compose.2004.54.yaml b/docker/docker-compose.2004.54.yaml index 6a6405c7d7..9da2faecc3 100644 --- a/docker/docker-compose.2004.54.yaml +++ b/docker/docker-compose.2004.54.yaml @@ -18,19 +18,19 @@ services: test: image: swift-nio:20.04-5.4 environment: - - MAX_ALLOCS_ALLOWED_1000_addHandlers=46050 - - MAX_ALLOCS_ALLOWED_1000_addHandlers_sync=39050 + - MAX_ALLOCS_ALLOWED_1000_addHandlers=48050 + - MAX_ALLOCS_ALLOWED_1000_addHandlers_sync=41050 - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlercontext=9050 - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlername=9050 - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlertype=9050 - MAX_ALLOCS_ALLOWED_1000_autoReadGetAndSet=25050 - MAX_ALLOCS_ALLOWED_1000_autoReadGetAndSet_sync=0 - MAX_ALLOCS_ALLOWED_1000_getHandlers=9050 - - MAX_ALLOCS_ALLOWED_1000_getHandlers_sync=36 + - MAX_ALLOCS_ALLOWED_1000_getHandlers_sync=38 - MAX_ALLOCS_ALLOWED_1000_reqs_1_conn=30450 - MAX_ALLOCS_ALLOWED_1000_tcpbootstraps=4050 - MAX_ALLOCS_ALLOWED_1000_tcpconnections=165050 - - MAX_ALLOCS_ALLOWED_1000_udp_reqs=12050 + - MAX_ALLOCS_ALLOWED_1000_udp_reqs=12000 - MAX_ALLOCS_ALLOWED_1000_udpbootstraps=2050 - MAX_ALLOCS_ALLOWED_1000_udpconnections=89950 - MAX_ALLOCS_ALLOWED_1_reqs_1000_conn=431000 diff --git a/docker/docker-compose.2004.55.yaml b/docker/docker-compose.2004.55.yaml index 840af92b93..54b6dc11d7 100644 --- a/docker/docker-compose.2004.55.yaml +++ b/docker/docker-compose.2004.55.yaml @@ -18,21 +18,21 @@ services: test: image: swift-nio:20.04-5.5 environment: - - MAX_ALLOCS_ALLOWED_1000_addHandlers=46050 - - MAX_ALLOCS_ALLOWED_1000_addHandlers_sync=39050 + - MAX_ALLOCS_ALLOWED_1000_addHandlers=48050 + - MAX_ALLOCS_ALLOWED_1000_addHandlers_sync=41050 - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlercontext=9050 - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlername=9050 - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlertype=9050 - MAX_ALLOCS_ALLOWED_1000_autoReadGetAndSet=25050 - MAX_ALLOCS_ALLOWED_1000_autoReadGetAndSet_sync=0 - MAX_ALLOCS_ALLOWED_1000_getHandlers=9050 - - MAX_ALLOCS_ALLOWED_1000_getHandlers_sync=36 + - MAX_ALLOCS_ALLOWED_1000_getHandlers_sync=38 - MAX_ALLOCS_ALLOWED_1000_reqs_1_conn=30450 - MAX_ALLOCS_ALLOWED_1000_tcpbootstraps=4050 - MAX_ALLOCS_ALLOWED_1000_tcpconnections=165050 - MAX_ALLOCS_ALLOWED_1000_udp_reqs=12050 - MAX_ALLOCS_ALLOWED_1000_udpbootstraps=2050 - - MAX_ALLOCS_ALLOWED_1000_udpconnections=90000 + - MAX_ALLOCS_ALLOWED_1000_udpconnections=89850 - MAX_ALLOCS_ALLOWED_1_reqs_1000_conn=431000 - MAX_ALLOCS_ALLOWED_bytebuffer_lots_of_rw=2050 - MAX_ALLOCS_ALLOWED_creating_10000_headers=0 diff --git a/docker/docker-compose.2004.main.yaml b/docker/docker-compose.2004.main.yaml index fd4de2a523..f7cd6dec98 100644 --- a/docker/docker-compose.2004.main.yaml +++ b/docker/docker-compose.2004.main.yaml @@ -18,15 +18,15 @@ services: test: image: swift-nio:20.04-main environment: - - MAX_ALLOCS_ALLOWED_1000_addHandlers=46050 - - MAX_ALLOCS_ALLOWED_1000_addHandlers_sync=39050 + - MAX_ALLOCS_ALLOWED_1000_addHandlers=48050 + - MAX_ALLOCS_ALLOWED_1000_addHandlers_sync=41050 - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlercontext=9050 - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlername=9050 - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlertype=9050 - MAX_ALLOCS_ALLOWED_1000_autoReadGetAndSet=24050 - MAX_ALLOCS_ALLOWED_1000_autoReadGetAndSet_sync=0 - MAX_ALLOCS_ALLOWED_1000_getHandlers=9050 - - MAX_ALLOCS_ALLOWED_1000_getHandlers_sync=36 + - MAX_ALLOCS_ALLOWED_1000_getHandlers_sync=38 - MAX_ALLOCS_ALLOWED_1000_reqs_1_conn=30400 - MAX_ALLOCS_ALLOWED_1000_tcpbootstraps=4050 - MAX_ALLOCS_ALLOWED_1000_tcpconnections=161050