diff --git a/React/Base/RCTEventDispatcher.m b/React/Base/RCTEventDispatcher.m index 2009df5426..b5b2857f0c 100644 --- a/React/Base/RCTEventDispatcher.m +++ b/React/Base/RCTEventDispatcher.m @@ -72,6 +72,7 @@ static NSNumber *RCTGetEventID(id event) } @synthesize bridge = _bridge; +@synthesize paused = _paused; RCT_EXPORT_MODULE() @@ -146,6 +147,7 @@ RCT_IMPORT_METHOD(RCTEventEmitter, receiveEvent); } _eventQueue[eventID] = event; + _paused = NO; [_eventQueueLock unlock]; } @@ -180,6 +182,7 @@ RCT_IMPORT_METHOD(RCTEventEmitter, receiveEvent); [_eventQueueLock lock]; eventQueue = _eventQueue; _eventQueue = [[NSMutableDictionary alloc] init]; + _paused = YES; [_eventQueueLock unlock]; for (id event in eventQueue.allValues) { diff --git a/React/Modules/RCTTiming.m b/React/Modules/RCTTiming.m index e21c9d16fe..4f92cfb05a 100644 --- a/React/Modules/RCTTiming.m +++ b/React/Modules/RCTTiming.m @@ -155,6 +155,10 @@ RCT_IMPORT_METHOD(RCTJSTimers, callTimers) if ([timersToCall count] > 0) { [_bridge enqueueJSCall:@"RCTJSTimers.callTimers" args:@[timersToCall]]; } + + if (_timers.count == 0) { + [self stopTimers]; + } } /**