NSFetchedResultsController Delegate Concurrency Debugging Assertion

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