@@ -27,7 +27,7 @@ func withMockServer<Result>(
2727 _ body: ( _ port: Int ) async throws -> Result
2828) async throws -> Result {
2929 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 )
3131 let port = try await server. start ( ) . get ( )
3232
3333 let result : Swift . Result < Result , any Error >
@@ -52,7 +52,13 @@ final class MockLambdaServer {
5252 private var channel : Channel ?
5353 private var shutdown = false
5454
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+ ) {
5662 self . group = NIOSingletons . posixEventLoopGroup
5763 self . behavior = behavior
5864 self . host = host
@@ -233,11 +239,14 @@ final class HTTPHandler: ChannelInboundHandler {
233239 }
234240 }
235241
242+ let loopBoundContext = NIOLoopBound ( context, eventLoop: context. eventLoop)
243+
236244 context. writeAndFlush ( wrapOutboundOut ( . end( nil ) ) ) . whenComplete { result in
237245 if case . failure( let error) = result {
238246 self . logger. error ( " \( self ) write error \( error) " )
239247 }
240248 if !self . keepAlive {
249+ let context = loopBoundContext. value
241250 context. close ( ) . whenFailure { error in
242251 self . logger. error ( " \( self ) close error \( error) " )
243252 }
0 commit comments