using new gcdthreadsafe idioms required by iOS 6 and the deprecation of dispatch_get_current_queue()