Quality of service changes to the default priority queue
Starting with 10.10, it seems the default priority queue has changed meaning from a middleground priority queue into a special queue with no specific priority attached. One consequence is that a default priority queue will now inherit the quality of service from the queue that submits the block (see DISPATCH_BLOCK_INHERIT_QOS_CLASS). dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ // Code A dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // Code B }); }); So code like this used to execute Code A in background priority and Code B in default priority. Now it executes both in background priority. So it seems this change breaks backward compatibility with existing code intent. Is there any suggestion as how to deal with this and potentially revert to the old behavior (if at all possible), considering the code must deploy back to 10.9. Regards, Thomas
participants (1)
-
Thomas Clement