I am getting a `NSManagedObjectContext __Multithreading_Violation_AllThatIsLeftToUsIsHonor__` assertion on NSFetchedResultsController when using the following launch argument to debug concurrency issue:
`-com.apple.CoreData.ConcurrencyDebug 1`
It seems that when a managed object context is saved in the background using this code. This is a simplifcation, but it is enough to trigger the assertion:
persistentContainer?.performBackgroundTask({ (parsingContext) in
parsingContext.mergePolicy = NSMergePolicy(merge: NSMergePolicyType.overwriteMergePolicyType)
try? parsingContext.save() // Assertion hit here
})
Here is the backtrace, it seems it tries to call `fetchedObjects.count` and the faulting array triggers an out of thread moc access exception:
* thread #3, queue = 'NSManagedObjectContext 0x6080001d7520', stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
* frame #0: 0x0000000105c8cff4 CoreData`+[NSManagedObjectContext __Multithreading_Violation_AllThatIsLeftToUsIsHonor__] + 4
frame #1: 0x0000000105c499f6 CoreData`-[_PFBatchFaultingArray count] + 54
frame #2: 0x0000000105d68741 CoreData`-[NSFetchedResultsController(PrivateMethods) _managedObjectContextDidSave:] + 817
frame #3: 0x000000010b724eac CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
frame #4: 0x000000010b724daa CoreFoundation`_CFXRegistrationPost + 442
frame #5: 0x000000010b724af2 CoreFoundation`___CFXNotificationPost_block_invoke + 50
frame #6: 0x000000010b6e6792 CoreFoundation`-[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1826
frame #7: 0x000000010b6e590c CoreFoundation`_CFXNotificationPost + 652
frame #8: 0x000000010a0b28f2 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 66
frame #9: 0x0000000105c97cfb CoreData`-[NSManagedObjectContext(_NSInternalNotificationHandling) _postContextDidSaveNotificationWithUserInfo:] + 1275
frame #10: 0x0000000105bfef83 CoreData`-[NSManagedObjectContext(_NSInternalAdditions) _didSaveChanges] + 2371
frame #11: 0x0000000105bf4273 CoreData`-[NSManagedObjectContext save:] + 4339