From tclementdev at free.fr Wed Mar 16 16:52:05 2016 From: tclementdev at free.fr (Thomas Clement) Date: Thu, 17 Mar 2016 00:52:05 +0100 Subject: [libdispatch-dev] Quality of service changes to the default priority queue Message-ID: <7001ACF7-7ED6-459D-B8D8-55BEF31F1654@free.fr> 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