@@ -27,7 +27,7 @@ func withMockServer<Result>(
27
27
_ body: ( _ port: Int ) async throws -> Result
28
28
) async throws -> Result {
29
29
let eventLoopGroup = NIOSingletons . posixEventLoopGroup
30
- let server = MockLambdaServer ( behavior: behaviour, port: port, keepAlive: keepAlive)
30
+ let server = MockLambdaServer ( behavior: behaviour, port: port, keepAlive: keepAlive, eventLoopGroup : eventLoopGroup )
31
31
let port = try await server. start ( ) . get ( )
32
32
33
33
let result : Swift . Result < Result , any Error >
@@ -52,7 +52,13 @@ final class MockLambdaServer {
52
52
private var channel : Channel ?
53
53
private var shutdown = false
54
54
55
- init ( behavior: LambdaServerBehavior , host: String = " 127.0.0.1 " , port: Int = 7000 , keepAlive: Bool = true ) {
55
+ init (
56
+ behavior: LambdaServerBehavior ,
57
+ host: String = " 127.0.0.1 " ,
58
+ port: Int = 7000 ,
59
+ keepAlive: Bool = true ,
60
+ eventLoopGroup: MultiThreadedEventLoopGroup
61
+ ) {
56
62
self . group = NIOSingletons . posixEventLoopGroup
57
63
self . behavior = behavior
58
64
self . host = host
@@ -233,11 +239,14 @@ final class HTTPHandler: ChannelInboundHandler {
233
239
}
234
240
}
235
241
242
+ let loopBoundContext = NIOLoopBound ( context, eventLoop: context. eventLoop)
243
+
236
244
context. writeAndFlush ( wrapOutboundOut ( . end( nil ) ) ) . whenComplete { result in
237
245
if case . failure( let error) = result {
238
246
self . logger. error ( " \( self ) write error \( error) " )
239
247
}
240
248
if !self . keepAlive {
249
+ let context = loopBoundContext. value
241
250
context. close ( ) . whenFailure { error in
242
251
self . logger. error ( " \( self ) close error \( error) " )
243
252
}
0 commit comments