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,069
  • 30
  • 111
  • 202

2 Answers2

16

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.
  • 271
  • 2
  • 7
5

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

DispatchGroup

OOPer
  • 45,838
  • 6
  • 99
  • 132