From 41137f89b0ef92367e649204dc3f6bfbf630292b Mon Sep 17 00:00:00 2001 From: Marek Gilbert Date: Fri, 22 Dec 2017 13:40:16 -0800 Subject: [PATCH] Run FIRSetLoggerLevel and FIRIsLoggableLevel on the same thread This fixes a race condition where a caller calls FIRSetLoggerLevel and then checks FIRIsLoggableLevel immediately after. --- Firebase/Core/FIRLogger.m | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Firebase/Core/FIRLogger.m b/Firebase/Core/FIRLogger.m index ba22bde8d5a..2b2a0aef631 100644 --- a/Firebase/Core/FIRLogger.m +++ b/Firebase/Core/FIRLogger.m @@ -164,13 +164,13 @@ void FIRSetLoggerLevel(FIRLoggerLevel loggerLevel) { return; } FIRLoggerInitializeASL(); - dispatch_async(sFIRClientQueue, ^{ - // We should not raise the logger level if we are running from App Store. - if (loggerLevel >= FIRLoggerLevelNotice && [FIRAppEnvironmentUtil isFromAppStore]) { - return; - } + // We should not raise the logger level if we are running from App Store. + if (loggerLevel >= FIRLoggerLevelNotice && [FIRAppEnvironmentUtil isFromAppStore]) { + return; + } - sFIRLoggerMaximumLevel = loggerLevel; + sFIRLoggerMaximumLevel = loggerLevel; + dispatch_async(sFIRClientQueue, ^{ asl_set_filter(sFIRLoggerClient, ASL_FILTER_MASK_UPTO(loggerLevel)); }); }