Save OP doesn't need to be synchronous. But access to the pendingRelationships map is performed, always, on the main thread. To make it super clear, we could move the dispatch_async call to the caller instead. What do you think?