提交 681d3648 authored 作者: kongdywang's avatar kongdywang

Fix the potential multi-concurrency issues that may arise from high-concurrency…

Fix the potential multi-concurrency issues that may arise from high-concurrency callback messages in native iOS
上级 95a2950a
......@@ -48,21 +48,25 @@
- (void)flushIfNeed
{
if (self.eventSink == nil) {
return;
@synchronized(self) {
if (self.eventSink == nil) {
return;
}
// array Immutable handle
NSArray *array = [NSArray arrayWithArray:self.eventQueue];
for (NSObject *obj in array) {
self.eventSink(obj);
}
[self.eventQueue removeAllObjects];
}
// array Immutable handle
NSArray *array = [NSArray arrayWithArray:self.eventQueue];
for (NSObject *obj in array) {
self.eventSink(obj);
}
[self.eventQueue removeAllObjects];
}
- (void)enqueue:(NSObject *)event
{
[self.eventQueue addObject:event];
@synchronized (self) {
[self.eventQueue addObject:event];
}
}
@end
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论