@@ -222,9 +222,7 @@ public final class PostgresConnection: @unchecked Sendable {
222
222
promise: promise
223
223
)
224
224
225
- let writePromise = self . channel. eventLoop. makePromise ( of: Void . self)
226
- self . channel. write ( HandlerTask . extendedQuery ( context) , promise: writePromise)
227
- writePromise. futureResult. cascadeFailure ( to: promise)
225
+ self . write ( HandlerTask . extendedQuery ( context) , cascadingFailureTo: promise)
228
226
229
227
return promise. futureResult
230
228
}
@@ -241,9 +239,7 @@ public final class PostgresConnection: @unchecked Sendable {
241
239
promise: promise
242
240
)
243
241
244
- let writePromise = self . channel. eventLoop. makePromise ( of: Void . self)
245
- self . channel. write ( HandlerTask . extendedQuery ( context) , promise: writePromise)
246
- writePromise. futureResult. cascadeFailure ( to: promise)
242
+ self . write ( HandlerTask . extendedQuery ( context) , cascadingFailureTo: promise)
247
243
248
244
return promise. futureResult. map { rowDescription in
249
245
PSQLPreparedStatement ( name: name, query: query, connection: self , rowDescription: rowDescription)
@@ -260,9 +256,7 @@ public final class PostgresConnection: @unchecked Sendable {
260
256
logger: logger,
261
257
promise: promise)
262
258
263
- let writePromise = self . channel. eventLoop. makePromise ( of: Void . self)
264
- self . channel. write ( HandlerTask . extendedQuery ( context) , promise: writePromise)
265
- writePromise. futureResult. cascadeFailure ( to: promise)
259
+ self . write ( HandlerTask . extendedQuery ( context) , cascadingFailureTo: promise)
266
260
267
261
return promise. futureResult
268
262
}
@@ -271,9 +265,7 @@ public final class PostgresConnection: @unchecked Sendable {
271
265
let promise = self . channel. eventLoop. makePromise ( of: Void . self)
272
266
let context = CloseCommandContext ( target: target, logger: logger, promise: promise)
273
267
274
- let writePromise = self . channel. eventLoop. makePromise ( of: Void . self)
275
- self . channel. write ( HandlerTask . closeCommand ( context) , promise: writePromise)
276
- writePromise. futureResult. cascadeFailure ( to: promise)
268
+ self . write ( HandlerTask . closeCommand ( context) , cascadingFailureTo: promise)
277
269
278
270
return promise. futureResult
279
271
}
@@ -437,9 +429,7 @@ extension PostgresConnection {
437
429
promise: promise
438
430
)
439
431
440
- let writePromise = self . channel. eventLoop. makePromise ( of: Void . self)
441
- self . channel. write ( HandlerTask . extendedQuery ( context) , promise: writePromise)
442
- writePromise. futureResult. cascadeFailure ( to: promise)
432
+ self . write ( HandlerTask . extendedQuery ( context) , cascadingFailureTo: promise)
443
433
444
434
do {
445
435
return try await promise. futureResult. map ( { $0. asyncSequence ( ) } ) . get ( )
@@ -498,9 +488,7 @@ extension PostgresConnection {
498
488
promise: promise
499
489
) )
500
490
501
- let writePromise = self . channel. eventLoop. makePromise ( of: Void . self)
502
- self . channel. write ( task, promise: writePromise)
503
- writePromise. futureResult. cascadeFailure ( to: promise)
491
+ self . write ( task, cascadingFailureTo: promise)
504
492
505
493
do {
506
494
return try await promise. futureResult
@@ -537,9 +525,7 @@ extension PostgresConnection {
537
525
promise: promise
538
526
) )
539
527
540
- let writePromise = self . channel. eventLoop. makePromise ( of: Void . self)
541
- self . channel. write ( task, promise: writePromise)
542
- writePromise. futureResult. cascadeFailure ( to: promise)
528
+ self . write ( task, cascadingFailureTo: promise)
543
529
544
530
do {
545
531
return try await promise. futureResult
@@ -555,6 +541,12 @@ extension PostgresConnection {
555
541
throw error // rethrow with more metadata
556
542
}
557
543
}
544
+
545
+ private func write< T, Value> ( _ any: T , cascadingFailureTo promise: EventLoopPromise < Value > ) {
546
+ let writePromise = self . channel. eventLoop. makePromise ( of: Void . self)
547
+ self . channel. write ( any, promise: writePromise)
548
+ writePromise. futureResult. cascadeFailure ( to: promise)
549
+ }
558
550
}
559
551
560
552
// MARK: EventLoopFuture interface
@@ -738,10 +730,7 @@ extension PostgresConnection {
738
730
closure: notificationHandler
739
731
)
740
732
741
- let task = HandlerTask . startListening ( listener)
742
- let writePromise = self . channel. eventLoop. makePromise ( of: Void . self)
743
- self . channel. write ( task, promise: writePromise)
744
- writePromise. futureResult. cascadeFailure ( to: listenContext. promise)
733
+ self . write ( HandlerTask . startListening ( listener) , cascadingFailureTo: listenContext. promise)
745
734
746
735
listenContext. future. whenComplete { _ in
747
736
let task = HandlerTask . cancelListening ( channel, id)
@@ -788,3 +777,4 @@ extension PostgresConnection {
788
777
#endif
789
778
}
790
779
}
780
+
0 commit comments