Skip to content

Commit e83ab73

Browse files
author
Dan Federman
committed
Distributing all pending logs should have higher QOS
1 parent 54b4be3 commit e83ab73

File tree

1 file changed

+28
-5
lines changed

1 file changed

+28
-5
lines changed

Logging/ARKLogDistributor.m

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,7 @@ - (instancetype)init;
7575
_logDistributingQueue.name = [NSString stringWithFormat:@"%@ Log Distributing Queue", self];
7676
_logDistributingQueue.maxConcurrentOperationCount = 1;
7777

78-
#ifdef __IPHONE_8_0
79-
if ([_logDistributingQueue respondsToSelector:@selector(setQualityOfService:)] /* iOS 8 or later */) {
80-
_logDistributingQueue.qualityOfService = NSQualityOfServiceBackground;
81-
}
82-
#endif
78+
[self _setDistributionQualityOfServiceBackground];
8379

8480
_logObservers = [NSMutableArray new];
8581

@@ -203,8 +199,10 @@ - (void)distributeAllPendingLogsWithCompletionHandler:(dispatch_block_t)completi
203199
{
204200
ARKCheckCondition(completionHandler != NULL, , @"Must provide a completion handler!");
205201

202+
[self _setDistributionQualityOfServiceUserInitiated];
206203
[self.logDistributingQueue addOperationWithBlock:^{
207204
[[NSOperationQueue mainQueue] addOperationWithBlock:completionHandler];
205+
[self _setDistributionQualityOfServiceBackground];
208206
}];
209207
}
210208

@@ -296,4 +294,29 @@ - (void)_logMessage_inLogDistributingQueue:(ARKLogMessage *)logMessage;
296294
}
297295
}
298296

297+
- (void)_setDistributionQualityOfServiceUserInitiated;
298+
{
299+
#ifdef __IPHONE_8_0
300+
[self _setDistributionQualityOfService:NSQualityOfServiceUserInitiated];
301+
#endif
302+
}
303+
304+
- (void)_setDistributionQualityOfServiceBackground;
305+
{
306+
#ifdef __IPHONE_8_0
307+
[self _setDistributionQualityOfService:NSQualityOfServiceBackground];
308+
#endif
309+
}
310+
311+
#ifdef __IPHONE_8_0
312+
313+
- (void)_setDistributionQualityOfService:(NSQualityOfService)qualityOfService;
314+
{
315+
if ([self.logDistributingQueue respondsToSelector:@selector(setQualityOfService:)] /* iOS 8 or later */) {
316+
self.logDistributingQueue.qualityOfService = qualityOfService;
317+
}
318+
}
319+
320+
#endif
321+
299322
@end

0 commit comments

Comments
 (0)