dispatch_queue_attr_make_with_qos_class
Returns attributes suitable for creating a dispatch queue with the desired quality-of-service information.
Declaration
extern dispatch_queue_attr_t dispatch_queue_attr_make_with_qos_class(dispatch_queue_attr_t attr, dispatch_qos_class_t qos_class, int relative_priority);Parameters
- attr:
A queue attribute value to be combined with the quality-of-service class. Specify Dispatch_queue_serial if you want submitted tasks to be scheduled serially or Dispatch_queue_concurrent if tasks may be scheduled concurrently. If you specify
NULL, this function creates a serial queue. - qos_class:
The quality of service you want to give to tasks executed using this queue. Quality-of-service helps determine the priority given to tasks executed by the queue. Specify one of the values
QOS_CLASS_USER_INTERACTIVE,QOS_CLASS_USER_INITIATED,QOS_CLASS_UTILITY, orQOS_CLASS_BACKGROUND. Queues that handle user-interactive or user-initiated tasks have a higher priority than tasks meant to run in the background. - relative_priority:
A negative offset from the maximum supported scheduler priority for the given quality-of-service class. This value must be less than
0and greater than or equal toQOS_MIN_RELATIVE_PRIORITY, or else this function returnsNULL.
Return Value
An attribute value that may be passed to the dispatch_queue_create function when creating a dispatch queue.
Discussion
Call this function prior to calling the dispatch_queue_create function when you want to create a dispatch queue with a specific quality-of-service level. This function combines the queue type attributes with the quality-of-service information you specify and returns a value that you can pass to the dispatch_queue_create function. The quality-of-service value you specify using this function takes precedence over the priority level inherited from the dispatch queue’s target queue.
The global queue priorities map to the following quality-of-service classes:
DISPATCH_QUEUE_PRIORITY_HIGH maps to the
QOS_CLASS_USER_INITIATEDclass.DISPATCH_QUEUE_PRIORITY_DEFAULT maps to the
QOS_CLASS_DEFAULTclass.DISPATCH_QUEUE_PRIORITY_LOW maps to the
QOS_CLASS_UTILITYclass.DISPATCH_QUEUE_PRIORITY_BACKGROUND maps to the
QOS_CLASS_BACKGROUNDclass.