Skip to content

Commit c69f2b5

Browse files
fix performance problem with sendEvent. (#364)
1 parent 1ec20d8 commit c69f2b5

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

OptimizelySDKEventDispatcher/OptimizelySDKEventDispatcher/OPTLYEventDispatcher.m

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,16 @@ dispatch_queue_t flushEventsQueue()
9696
return _flushEventsQueue;
9797
}
9898

99+
dispatch_queue_t queueEventQueue()
100+
{
101+
static dispatch_queue_t _queueEventsQueue = nil;
102+
static dispatch_once_t onceToken;
103+
dispatch_once(&onceToken, ^{
104+
_queueEventsQueue = dispatch_queue_create("com.Optimizely.QueueEvents", DISPATCH_QUEUE_SERIAL);
105+
});
106+
return _queueEventsQueue;
107+
}
108+
99109
dispatch_queue_t dispatchEventQueue()
100110
{
101111
static dispatch_queue_t _dispatchEventQueue = nil;
@@ -168,12 +178,17 @@ - (void)disableNetworkTimer
168178
# pragma mark - Dispatch Events
169179
- (void)dispatchImpressionEvent:(nonnull NSDictionary *)params
170180
callback:(nullable OPTLYEventDispatcherResponse)callback {
171-
[self dispatchNewEvent:params backoffRetry:YES eventType:OPTLYDataStoreEventTypeImpression callback:callback];
181+
dispatch_async(queueEventQueue(), ^{
182+
[self dispatchNewEvent:params backoffRetry:YES eventType:OPTLYDataStoreEventTypeImpression callback:callback];
183+
});
184+
172185
}
173186

174187
- (void)dispatchConversionEvent:(nonnull NSDictionary *)params
175188
callback:(nullable OPTLYEventDispatcherResponse)callback {
176-
[self dispatchNewEvent:params backoffRetry:YES eventType:OPTLYDataStoreEventTypeConversion callback:callback];
189+
dispatch_async(queueEventQueue(), ^{
190+
[self dispatchNewEvent:params backoffRetry:YES eventType:OPTLYDataStoreEventTypeConversion callback:callback];
191+
});
177192
}
178193

179194

0 commit comments

Comments
 (0)