What happens if there is stuff
pending/running on the queue while
calling release?
It is safe. pending/running queue is retained from system. Calling dispatch_release just affects the retain count of the queue. See man page of dispatch_async or so forth.