dispatch_group_leave crash in swift

Esto sucede muy raramente. Aquí está la última línea del rastreo de stack:

0 libdispatch.dylib 0x0000000197a85a9c dispatch_group_leave + 48 

dispatch_group_leave se invoca en un cierre completo que se invoca así:

  dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { () -> Void in let query = HKStatisticsCollectionQuery(quantityType: quantityType, quantitySamplePnetworkingicate: nil, options: statisticOptions, anchorDate: anchorDate, intervalComponents: interval) query.initialResultsHandler = { complete() 

Por lo tanto, enviamos a un subprocess de background, ejecutamos un HKStatisticsCollectionQuery y llamamos a un cierre de parámetro de function llamado complete. Dentro de completo es donde se llama dispatch_group_leave y ocurre el locking.

¡Cualquier idea es muy apreciada! ¡Gracias!

Si la llamada dispatch_group_leave no está equilibrada con dispatch_group_enter , puede producirse un locking.