@@ -97,9 +97,9 @@ extension Deferred
9797 /// - parameter serially: whether the notifications should be dispatched on a serial queue; defaults to `true`
9898 /// - returns: a new `Deferred` whose notifications will execute at QoS `qos`
9999
100- public func enqueuing( at qos: DispatchQoS , serially : Bool = true ) -> Deferred
100+ public func enqueuing( at qos: DispatchQoS ) -> Deferred
101101 {
102- let queue = DispatchQueue ( label: " deferred " , qos: qos, attributes : serially ? [ ] : . concurrent )
102+ let queue = DispatchQueue ( label: " \( self . queue . label ) -enqueuing " , qos: qos, target : self . queue )
103103 return enqueuing ( on: queue)
104104 }
105105}
@@ -139,7 +139,7 @@ extension Deferred
139139 public func map< Other> ( qos: DispatchQoS ,
140140 transform: @escaping ( _ value: Success ) -> Other ) -> Deferred < Other , Failure >
141141 {
142- let queue = DispatchQueue ( label: " deferred -map" , qos: qos)
142+ let queue = DispatchQueue ( label: " \( self . queue . label ) -map " , qos: qos, target : self . queue )
143143 return map ( queue: queue, transform: transform)
144144 }
145145
@@ -174,7 +174,7 @@ extension Deferred
174174 public func tryMap< Other> ( qos: DispatchQoS ,
175175 transform: @escaping ( _ value: Success ) throws -> Other ) -> Deferred < Other , Error >
176176 {
177- let queue = DispatchQueue ( label: " deferred -trymap" , qos: qos)
177+ let queue = DispatchQueue ( label: " \( self . queue . label ) -trymap " , qos: qos, target : self . queue )
178178 return tryMap ( queue: queue, transform: transform)
179179 }
180180
@@ -209,7 +209,7 @@ extension Deferred
209209 public func mapError< OtherFailure> ( qos: DispatchQoS ,
210210 transform: @escaping ( _ error: Failure ) -> OtherFailure ) -> Deferred < Success , OtherFailure >
211211 {
212- let queue = DispatchQueue ( label: " deferred -maperror" , qos: qos)
212+ let queue = DispatchQueue ( label: " \( self . queue . label ) -maperror " , qos: qos, target : self . queue )
213213 return mapError ( queue: queue, transform: transform)
214214 }
215215
@@ -297,7 +297,7 @@ extension Deferred
297297 public func flatMap< Other> ( qos: DispatchQoS ,
298298 transform: @escaping ( _ value: Success ) -> Deferred < Other , Failure > ) -> Deferred < Other , Failure >
299299 {
300- let queue = DispatchQueue ( label: " deferred -flatmap" , qos: qos)
300+ let queue = DispatchQueue ( label: " \( self . queue . label ) -flatmap " , qos: qos, target : self . queue )
301301 return flatMap ( queue: queue, transform: transform)
302302 }
303303
@@ -347,7 +347,7 @@ extension Deferred
347347 public func tryFlatMap< Other> ( qos: DispatchQoS ,
348348 transform: @escaping ( _ value: Success ) throws -> Deferred < Other , Error > ) -> Deferred < Other , Error >
349349 {
350- let queue = DispatchQueue ( label: " deferred -flatmap" , qos: qos)
350+ let queue = DispatchQueue ( label: " \( self . queue . label ) -flatmap " , qos: qos, target : self . queue )
351351 return tryFlatMap ( queue: queue, transform: transform)
352352 }
353353
@@ -398,7 +398,7 @@ extension Deferred
398398 public func flatMapError< OtherFailure> ( qos: DispatchQoS ,
399399 transform: @escaping ( _ error: Failure ) -> Deferred < Success , OtherFailure > ) -> Deferred < Success , OtherFailure >
400400 {
401- let queue = DispatchQueue ( label: " deferred -flatmaperror" , qos: qos)
401+ let queue = DispatchQueue ( label: " \( self . queue ) -flatmaperror " , qos: qos, target : self . queue )
402402 return flatMapError ( queue: queue, transform: transform)
403403 }
404404}
@@ -565,7 +565,7 @@ extension Deferred
565565 public func recover( qos: DispatchQoS ,
566566 transform: @escaping ( _ error: Failure ) -> Deferred ) -> Deferred
567567 {
568- let queue = DispatchQueue ( label: " deferred -recover" , qos: qos)
568+ let queue = DispatchQueue ( label: " \( self . queue . label ) -recover " , qos: qos, target : self . queue )
569569 return recover ( queue: queue, transform: transform)
570570 }
571571
@@ -580,7 +580,7 @@ extension Deferred
580580 public static func Retrying( _ attempts: Int , qos: DispatchQoS = . current,
581581 task: @escaping ( ) -> Deferred ) -> Deferred
582582 {
583- let queue = DispatchQueue ( label: " retrying " , qos: qos)
583+ let queue = DispatchQueue ( label: " deferred-retry " , qos: qos, target : . global ( qos : qos . qosClass ) )
584584 return Deferred . Retrying ( attempts, queue: queue, task: task)
585585 }
586586
@@ -655,7 +655,7 @@ extension Deferred where Failure == Error
655655 public func recover( qos: DispatchQoS ,
656656 transform: @escaping ( _ error: Error ) throws -> Success ) -> Deferred
657657 {
658- let queue = DispatchQueue ( label: " deferred -recover" , qos: qos)
658+ let queue = DispatchQueue ( label: " \( self . queue . label ) -recover " , qos: qos, target : self . queue )
659659 return recover ( queue: queue, transform: transform)
660660 }
661661
@@ -670,7 +670,7 @@ extension Deferred where Failure == Error
670670 public static func Retrying( _ attempts: Int , qos: DispatchQoS = . current,
671671 task: @escaping ( ) throws -> Success ) -> Deferred
672672 {
673- let queue = DispatchQueue ( label: " deferred " , qos: qos)
673+ let queue = DispatchQueue ( label: " deferred-retry " , qos: qos, target : . global ( qos : qos . qosClass ) )
674674 return Deferred . Retrying ( attempts, queue: queue, task: task)
675675 }
676676
@@ -763,7 +763,7 @@ extension Deferred
763763 public func apply< Other> ( qos: DispatchQoS ,
764764 transform: Deferred < ( _ value: Success ) -> Other , Never > ) -> Deferred < Other , Failure >
765765 {
766- let queue = DispatchQueue ( label: " deferred -apply" , qos: qos)
766+ let queue = DispatchQueue ( label: " \( self . queue . label ) -apply " , qos: qos, target : self . queue )
767767 return apply ( queue: queue, transform: transform)
768768 }
769769}
@@ -803,7 +803,7 @@ extension Deferred
803803 public func validate( qos: DispatchQoS ,
804804 predicate: @escaping ( _ value: Success ) -> Bool , message: String = " " ) -> Deferred < Success , Error >
805805 {
806- let queue = DispatchQueue ( label: " deferred " , qos: qos)
806+ let queue = DispatchQueue ( label: " \( self . queue . label ) -validate " , qos: qos, target : self . queue )
807807 return validate ( queue: queue, predicate: predicate, message: message)
808808 }
809809
@@ -838,7 +838,7 @@ extension Deferred
838838 public func validate( qos: DispatchQoS ,
839839 predicate: @escaping ( _ value: Success ) throws -> Void ) -> Deferred < Success , Error >
840840 {
841- let queue = DispatchQueue ( label: " deferred " , qos: qos)
841+ let queue = DispatchQueue ( label: " \( self . queue . label ) -validate " , qos: qos, target : self . queue )
842842 return validate ( queue: queue, predicate: predicate)
843843 }
844844}
@@ -870,7 +870,7 @@ extension Optional
870870
871871 public func deferred( qos: DispatchQoS = . current) -> Deferred < Wrapped , Invalidation >
872872 {
873- let queue = DispatchQueue ( label: " deferred " , qos: qos)
873+ let queue = DispatchQueue ( label: " deferred " , qos: qos, target : . global ( qos : qos . qosClass ) )
874874 return self . deferred ( queue: queue)
875875 }
876876}
0 commit comments