Index: webrtc/sdk/objc/Framework/Classes/Common/RTCUIApplicationStatusObserver.m |
diff --git a/webrtc/sdk/objc/Framework/Classes/Common/RTCUIApplicationStatusObserver.m b/webrtc/sdk/objc/Framework/Classes/Common/RTCUIApplicationStatusObserver.m |
index 168832d9ed08a2653f2595f4f425203bde3d5f7a..84325b27f1616d5ec25dfa6e2d887ea57b141688 100644 |
--- a/webrtc/sdk/objc/Framework/Classes/Common/RTCUIApplicationStatusObserver.m |
+++ b/webrtc/sdk/objc/Framework/Classes/Common/RTCUIApplicationStatusObserver.m |
@@ -19,6 +19,7 @@ |
@implementation RTCUIApplicationStatusObserver { |
BOOL _initialized; |
dispatch_block_t _initializeBlock; |
+ dispatch_semaphore_t _waitForInitializeSemaphore; |
UIApplicationState _state; |
} |
@@ -49,6 +50,7 @@ |
_state = [UIApplication sharedApplication].applicationState; |
}]; |
+ _waitForInitializeSemaphore = dispatch_semaphore_create(1); |
_initialized = NO; |
_initializeBlock = dispatch_block_create(DISPATCH_BLOCK_INHERIT_QOS_CLASS, ^{ |
_state = [UIApplication sharedApplication].applicationState; |
@@ -63,9 +65,13 @@ |
- (BOOL)isApplicationActive { |
if (!_initialized) { |
- long ret = dispatch_block_wait(_initializeBlock, |
- dispatch_time(DISPATCH_TIME_NOW, 10.0 * NSEC_PER_SEC)); |
- RTC_DCHECK_EQ(ret, 0); |
+ dispatch_semaphore_wait(_waitForInitializeSemaphore, DISPATCH_TIME_FOREVER); |
daniela-webrtc
2017/09/13 09:02:50
This code is becoming slightly complex now. Would
andersc
2017/09/13 09:19:51
Acknowledged.
|
+ if (!_initialized) { |
daniela-webrtc
2017/09/13 09:02:50
I guess we want to synchronize only if the observa
andersc
2017/09/13 09:19:51
Not sure what you mean. Since the `dispatch_block_
daniela-webrtc
2017/09/13 09:30:49
Acknowledged.
daniela-webrtc
2017/09/13 09:30:49
Missed that there were two if statements. The comm
|
+ long ret = dispatch_block_wait(_initializeBlock, |
+ dispatch_time(DISPATCH_TIME_NOW, 10.0 * NSEC_PER_SEC)); |
+ RTC_DCHECK_EQ(ret, 0); |
+ } |
+ dispatch_semaphore_signal(_waitForInitializeSemaphore); |
} |
return _state == UIApplicationStateActive; |
} |