15

I'm using Swift 3 DispatchGroup to wait until multiple async operations are finished (according to this answer which works perfect and as expected.

Is there a way to check how many operations are entered already, like dispatchGroup.count or something like that?

swalkner
  • 16,679
  • 31
  • 123
  • 210

2 Answers2

17

You can see counts of enters to the group in debug description:

OS_dispatch_group: group[0x60000221d950] = { xref = 3, ref = 3, count = 2, gen = 0, waiters = 0, notifs = 1 }

and extract int value out of it:

let count = dispatchGroup.debugDescription.components(separatedBy: ",").filter({$0.contains("count")}).first?.components(separatedBy: CharacterSet.decimalDigits.inverted).compactMap{Int($0)}.first
Farid A.
  • 281
  • 2
  • 7
6

NO, nothing. You need to balance your enter() and leave() by yourself without counting.

DispatchGroup

OOPer
  • 47,149
  • 6
  • 107
  • 142