Skip to content

Commit 1945b18

Browse files
fumoboy007thomasvl
authored andcommitted
Use atomic property to store cached verboseLoggingEnabled value.
The cached value can be updated on any thread because any thread can trigger the KVO notification. Therefore, reading/writing the value needs to be atomic.
1 parent 2825fc6 commit 1945b18

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

Foundation/GTMLogger.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,6 @@ typedef enum {
475475
// never filtered.
476476
@interface GTMLogLevelFilter : NSObject <GTMLogFilter> {
477477
@private
478-
BOOL verboseLoggingEnabled_;
479478
NSUserDefaults *userDefaults_;
480479
}
481480
@end // GTMLogLevelFilter

Foundation/GTMLogger.m

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -517,12 +517,18 @@ static BOOL IsVerboseLoggingEnabled(NSUserDefaults *userDefaults) {
517517
}
518518
// COV_NF_END
519519

520+
@interface GTMLogLevelFilter ()
521+
522+
@property (atomic) BOOL verboseLoggingEnabled;
523+
524+
@end
525+
520526
@implementation GTMLogLevelFilter
521527

522528
- (id)init {
523529
self = [super init];
524530
if (self) {
525-
verboseLoggingEnabled_ = IsVerboseLoggingEnabled(userDefaults_);
531+
self.verboseLoggingEnabled = IsVerboseLoggingEnabled(userDefaults_);
526532
}
527533

528534
return self;
@@ -554,7 +560,7 @@ - (BOOL)filterAllowsMessage:(NSString *)msg level:(GTMLoggerLevel)level {
554560
allow = NO;
555561
break;
556562
case kGTMLoggerLevelInfo:
557-
allow = verboseLoggingEnabled_;
563+
allow = self.verboseLoggingEnabled;
558564
break;
559565
case kGTMLoggerLevelError:
560566
allow = YES;
@@ -627,7 +633,7 @@ - (void)observeValueForKeyPath:(NSString *)keyPath
627633
context:(void *)context
628634
{
629635
if([keyPath isEqual:kVerboseLoggingKey]) {
630-
verboseLoggingEnabled_ = IsVerboseLoggingEnabled(userDefaults_);
636+
self.verboseLoggingEnabled = IsVerboseLoggingEnabled(userDefaults_);
631637
}
632638
}
633639

0 commit comments

Comments
 (0)