EXC_RESOURCE
The operating system stopped the process because the process exceeded a limit on resource consumption, like CPU time or memory.
Overview
If the Exception Note field contains NON-FATAL CONDITION, this means the operating system generated a crash report without actually terminating the process. The Exception Message field describes the amount of resources consumed over a specific time interval.
The crash report lists the specific resource in the Exception Subtype field:
CPUandCPU_FATALA thread in the process used too much CPU over a short period of time.
MEMORYThe process crossed a memory limit imposed by the system. This may be a precursor to termination for excess memory usage.
IOThe process caused an excessive amount of disk writes over a short period of time.
WAKEUPSThreads in the process woke up too many times per second, which consumes battery life.
Excessive wake-ups can come from calling thread-to-thread communication APIs more often than expected; these APIs include perform(_:on:with:waitUntilDone:), async(execute:), and dispatch_async. Because the communication that triggers this exception is happening so frequently, crash reports usually include multiple background threads with very similar backtraces that indicate the origin of the thread communication. See Modernizing Grand Central Dispatch Usage for how to manage concurrent workloads more efficiently.