How do I resolve this deadlock that happen ocassionally?
I have one managedObjectContext with concurency type of NSMainQueueConcurrencyType + (NSManagedObjectContext *)managedObjectContextMainThread { static NSManagedObjectContext *__managedObjectContext=nil; @synchronized(self) { if (__managedObjectContext != nil) { } else { NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator]; if (coordinator != nil) { __managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType]; [__managedObjectContext setPersistentStoreCoordinator:coordinator]; } } } return __managedObjectContext; } The