@@ -100,8 +100,12 @@ extension JSController {
100100 guard let promiseDetails = promiseValueDetails else {
101101 Logger . shared. log ( " extractDetails did not return a Promise " , type: " Error " )
102102 detailsGroupQueue. sync {
103- guard !hasLeftDetailsGroup else { return }
103+ guard !hasLeftDetailsGroup else {
104+ Logger . shared. log ( " extractDetails: guard block called but group already left " , type: " Debug " )
105+ return
106+ }
104107 hasLeftDetailsGroup = true
108+ Logger . shared. log ( " Leaving dispatch group due to nil promise (details) " , type: " Debug " )
105109 dispatchGroup. leave ( )
106110 }
107111 completion ( [ ] , [ ] )
@@ -136,6 +140,7 @@ extension JSController {
136140 } else {
137141 Logger . shared. log ( " Result is not a string of extractDetails " , type: " Error " )
138142 }
143+ Logger . shared. log ( " Leaving dispatch group from details thenBlock " , type: " Debug " )
139144 dispatchGroup. leave ( )
140145 }
141146 }
@@ -149,6 +154,7 @@ extension JSController {
149154 hasLeftDetailsGroup = true
150155
151156 Logger . shared. log ( " Promise rejected of extractDetails: \( String ( describing: error. toString ( ) ) ) " , type: " Error " )
157+ Logger . shared. log ( " Leaving dispatch group from details catchBlock " , type: " Debug " )
152158 dispatchGroup. leave ( )
153159 }
154160 }
@@ -173,6 +179,7 @@ extension JSController {
173179 return
174180 }
175181 hasLeftEpisodesGroup = true
182+ Logger . shared. log ( " Leaving dispatch group due to timeout " , type: " Debug " )
176183 dispatchGroup. leave ( )
177184 }
178185 }
@@ -182,8 +189,12 @@ extension JSController {
182189 Logger . shared. log ( " extractEpisodes did not return a Promise " , type: " Error " )
183190 timeoutWorkItem. cancel ( )
184191 episodesGroupQueue. sync {
185- guard !hasLeftEpisodesGroup else { return }
192+ guard !hasLeftEpisodesGroup else {
193+ Logger . shared. log ( " extractEpisodes: guard block called but group already left " , type: " Debug " )
194+ return
195+ }
186196 hasLeftEpisodesGroup = true
197+ Logger . shared. log ( " Leaving dispatch group due to nil promise " , type: " Debug " )
187198 dispatchGroup. leave ( )
188199 }
189200 completion ( [ ] , [ ] )
@@ -220,6 +231,7 @@ extension JSController {
220231 } else {
221232 Logger . shared. log ( " Result is not a string of extractEpisodes " , type: " Error " )
222233 }
234+ Logger . shared. log ( " Leaving dispatch group from thenBlock " , type: " Debug " )
223235 dispatchGroup. leave ( )
224236 }
225237 }
@@ -234,6 +246,7 @@ extension JSController {
234246 hasLeftEpisodesGroup = true
235247
236248 Logger . shared. log ( " Promise rejected of extractEpisodes: \( String ( describing: error. toString ( ) ) ) " , type: " Error " )
249+ Logger . shared. log ( " Leaving dispatch group from catchBlock " , type: " Debug " )
237250 dispatchGroup. leave ( )
238251 }
239252 }
0 commit comments