dispatch_sync to main thread is okay, if you're not on the main thread