QualityOfService for concurrentPerform in Swift 3


(Gerriet M. Denkmann) #1

In ObjC:

dispatch_queue_t queue = dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_HIGH, 0 );
dispatch_apply( nbrThreads, queue, ^void(size_t idx) …

In Swift 3:
DispatchQueue.concurrentPerform( iterations: nbrThreads) …

How can one specify the DISPATCH_QUEUE_PRIORITY or QualityOfService to be used by concurrentPerform?

Gerriet.


(Saagar Jha) #2

You might be looking for the DispatchQoS.QoSClass <https://developer.apple.com/reference/dispatch/dispatchqos.qosclass> enum.

Saagar Jha

···

On Sep 25, 2016, at 05:19, Gerriet M. Denkmann via swift-users <swift-users@swift.org> wrote:

In ObjC:

dispatch_queue_t queue = dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_HIGH, 0 );
dispatch_apply( nbrThreads, queue, ^void(size_t idx) …

In Swift 3:
DispatchQueue.concurrentPerform( iterations: nbrThreads) …

How can one specify the DISPATCH_QUEUE_PRIORITY or QualityOfService to be used by concurrentPerform?

Gerriet.

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users


(Gerriet M. Denkmann) #3

You might be looking for the DispatchQoS.QoSClass enum.

Saagar Jha

Probably. But how to make concurrentPerform use any of these enums?

Gerriet.

···

On 25 Sep 2016, at 23:08, Saagar Jha <saagar@saagarjha.com> wrote:

On Sep 25, 2016, at 05:19, Gerriet M. Denkmann via swift-users <swift-users@swift.org> wrote:

In ObjC:

dispatch_queue_t queue = dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_HIGH, 0 );
dispatch_apply( nbrThreads, queue, ^void(size_t idx) …

In Swift 3:
DispatchQueue.concurrentPerform( iterations: nbrThreads) …

How can one specify the DISPATCH_QUEUE_PRIORITY or QualityOfService to be used by concurrentPerform?

Gerriet.

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users


(Saagar Jha) #4

Hmm, I didn’t realize that concurrentPerform doesn’t allow you to pass in your own queue…this looks like an oversight to me. Maybe someone with more experience with libdispatch could explain?

Saagar Jha

···

On Sep 25, 2016, at 09:13, Gerriet M. Denkmann <g@mdenkmann.de> wrote:

On 25 Sep 2016, at 23:08, Saagar Jha <saagar@saagarjha.com> wrote:

You might be looking for the DispatchQoS.QoSClass enum.

Saagar Jha

Probably. But how to make concurrentPerform use any of these enums?

Gerriet.

On Sep 25, 2016, at 05:19, Gerriet M. Denkmann via swift-users <swift-users@swift.org> wrote:

In ObjC:

dispatch_queue_t queue = dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_HIGH, 0 );
dispatch_apply( nbrThreads, queue, ^void(size_t idx) …

In Swift 3:
DispatchQueue.concurrentPerform( iterations: nbrThreads) …

How can one specify the DISPATCH_QUEUE_PRIORITY or QualityOfService to be used by concurrentPerform?

Gerriet.

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users


(Daniel Müllenborn) #5

I do not understand why this works, but when you create a queue in the line before. It will be used.

Like in this example:

let queue = DispatchQueue.global(qos: .default)
DispatchQueue.concurrentPerform(iterations: n)

···

Hmm, I didn’t realize that concurrentPerform doesn’t allow you to pass in your own queue…this looks like an oversight to me. Maybe someone with more experience with libdispatch could explain?

Saagar Jha

> On Sep 25, 2016, at 09:13, Gerriet M. Denkmann<g@mdenkmann.de(mailto:g@mdenkmann.de)>wrote:
>
> > On 25 Sep 2016, at 23:08, Saagar Jha<saagar@saagarjha.com(mailto:saagar@saagarjha.com)>wrote:
> >
> > You might be looking for the DispatchQoS.QoSClass enum.
> >
> > Saagar Jha
>
> Probably. But how to make concurrentPerform use any of these enums?
>
> Gerriet.
>
>
>
> >
> > > On Sep 25, 2016, at 05:19, Gerriet M. Denkmann via swift-users<swift-users@swift.org(mailto:swift-users@swift.org)>wrote:
> > >
> > > In ObjC:
> > >
> > > dispatch_queue_t queue = dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_HIGH, 0 );
> > > dispatch_apply( nbrThreads, queue, ^void(size_t idx) …
> > >
> > > In Swift 3:
> > > DispatchQueue.concurrentPerform( iterations: nbrThreads) …
> > >
> > > How can one specify the DISPATCH_QUEUE_PRIORITY or QualityOfService to be used by concurrentPerform?
> > >
> > > Gerriet.
> > >
> > > _______________________________________________
> > > swift-users mailing list
> > > swift-users@swift.org(mailto:swift-users@swift.org)
> > > https://lists.swift.org/mailman/listinfo/swift-users
> >
>