@@ -96,6 +96,16 @@ dispatch_queue_t flushEventsQueue()
96
96
return _flushEventsQueue;
97
97
}
98
98
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
+
99
109
dispatch_queue_t dispatchEventQueue ()
100
110
{
101
111
static dispatch_queue_t _dispatchEventQueue = nil ;
@@ -168,12 +178,17 @@ - (void)disableNetworkTimer
168
178
# pragma mark - Dispatch Events
169
179
- (void )dispatchImpressionEvent : (nonnull NSDictionary *)params
170
180
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
+
172
185
}
173
186
174
187
- (void )dispatchConversionEvent : (nonnull NSDictionary *)params
175
188
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
+ });
177
192
}
178
193
179
194
0 commit comments