@@ -208,32 +208,52 @@ - (void)appWillTerminate:(GDTApplication *)application {
208
208
#pragma mark - GDTUploadPackageProtocol
209
209
210
210
- (void )packageDelivered : (GDTUploadPackage *)package successful : (BOOL )successful {
211
+ if (!_coordinationQueue) {
212
+ return ;
213
+ }
211
214
dispatch_async (_coordinationQueue, ^{
212
215
NSNumber *targetNumber = @(package.target );
213
- [ self ->_targetToInFlightPackages removeObjectForKey: targetNumber];
214
- id <GDTPrioritizer> prioritizer = self->_registrar . targetToPrioritizer [targetNumber] ;
215
- if (!prioritizer) {
216
- GDTLogError (GDTMCEPrioritizerError, @" A prioritizer should be registered for this target: %@ " ,
217
- targetNumber) ;
216
+ NSMutableDictionary < NSNumber *, GDTUploadPackage *> *targetToInFlightPackages =
217
+ self->_targetToInFlightPackages ;
218
+ GDTRegistrar *registrar = self-> _registrar ;
219
+ if (targetToInFlightPackages) {
220
+ [targetToInFlightPackages removeObjectForKey: targetNumber] ;
218
221
}
219
- if ([prioritizer respondsToSelector: @selector (packageDelivered:successful: )]) {
220
- [prioritizer packageDelivered: package successful: successful];
222
+ if (registrar) {
223
+ id <GDTPrioritizer> prioritizer = registrar.targetToPrioritizer [targetNumber];
224
+ if (!prioritizer) {
225
+ GDTLogError (GDTMCEPrioritizerError,
226
+ @" A prioritizer should be registered for this target: %@ " , targetNumber);
227
+ }
228
+ if ([prioritizer respondsToSelector: @selector (packageDelivered:successful: )]) {
229
+ [prioritizer packageDelivered: package successful: successful];
230
+ }
221
231
}
222
232
[self .storage removeEvents: package.events];
223
233
});
224
234
}
225
235
226
236
- (void )packageExpired : (GDTUploadPackage *)package {
237
+ if (!_coordinationQueue) {
238
+ return ;
239
+ }
227
240
dispatch_async (_coordinationQueue, ^{
228
241
NSNumber *targetNumber = @(package.target );
229
- [ self ->_targetToInFlightPackages removeObjectForKey: targetNumber];
230
- id <GDTPrioritizer> prioritizer = self->_registrar . targetToPrioritizer [targetNumber] ;
231
- id <GDTUploader> uploader = self->_registrar . targetToUploader [targetNumber] ;
232
- if ([prioritizer respondsToSelector: @selector ( packageExpired: )] ) {
233
- [prioritizer packageExpired: package ];
242
+ NSMutableDictionary < NSNumber *, GDTUploadPackage *> *targetToInFlightPackages =
243
+ self->_targetToInFlightPackages ;
244
+ GDTRegistrar *registrar = self->_registrar ;
245
+ if (targetToInFlightPackages ) {
246
+ [targetToInFlightPackages removeObjectForKey: targetNumber ];
234
247
}
235
- if ([uploader respondsToSelector: @selector (packageExpired: )]) {
236
- [uploader packageExpired: package];
248
+ if (registrar) {
249
+ id <GDTPrioritizer> prioritizer = registrar.targetToPrioritizer [targetNumber];
250
+ id <GDTUploader> uploader = registrar.targetToUploader [targetNumber];
251
+ if ([prioritizer respondsToSelector: @selector (packageExpired: )]) {
252
+ [prioritizer packageExpired: package];
253
+ }
254
+ if ([uploader respondsToSelector: @selector (packageExpired: )]) {
255
+ [uploader packageExpired: package];
256
+ }
237
257
}
238
258
});
239
259
}
0 commit comments