@@ -597,8 +597,10 @@ final class PostgresChannelHandler: ChannelDuplexHandler {
597597 logger: self . logger,
598598 promise: promise
599599 )
600+ let loopBound = NIOLoopBound ( ( self , context) , eventLoop: self . eventLoop)
600601 promise. futureResult. whenComplete { result in
601- self . startListenCompleted ( result, for: channel, context: context)
602+ let ( selfTransferred, context) = loopBound. value
603+ selfTransferred. startListenCompleted ( result, for: channel, context: context)
602604 }
603605
604606 return . extendedQuery( query)
@@ -643,8 +645,10 @@ final class PostgresChannelHandler: ChannelDuplexHandler {
643645 logger: self . logger,
644646 promise: promise
645647 )
648+ let loopBound = NIOLoopBound ( ( self , context) , eventLoop: self . eventLoop)
646649 promise. futureResult. whenComplete { result in
647- self . stopListenCompleted ( result, for: channel, context: context)
650+ let ( selfTransferred, context) = loopBound. value
651+ selfTransferred. stopListenCompleted ( result, for: channel, context: context)
648652 }
649653
650654 return . extendedQuery( query)
@@ -693,10 +697,12 @@ final class PostgresChannelHandler: ChannelDuplexHandler {
693697 context: ChannelHandlerContext
694698 ) -> PSQLTask {
695699 let promise = self . eventLoop. makePromise ( of: RowDescription ? . self)
700+ let loopBound = NIOLoopBound ( ( self , context) , eventLoop: self . eventLoop)
696701 promise. futureResult. whenComplete { result in
702+ let ( selfTransferred, context) = loopBound. value
697703 switch result {
698704 case . success( let rowDescription) :
699- self . prepareStatementComplete (
705+ selfTransferred . prepareStatementComplete (
700706 name: preparedStatement. name,
701707 rowDescription: rowDescription,
702708 context: context
@@ -708,7 +714,7 @@ final class PostgresChannelHandler: ChannelDuplexHandler {
708714 } else {
709715 psqlError = . connectionError( underlying: error)
710716 }
711- self . prepareStatementFailed (
717+ selfTransferred . prepareStatementFailed (
712718 name: preparedStatement. name,
713719 error: psqlError,
714720 context: context
0 commit comments