Skip to content

Commit 97c2d2a

Browse files
committed
Fixed data race in tests
1 parent fb970f9 commit 97c2d2a

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

MobiusCore/Test/TestingUtil.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,10 @@ class TestConnectableEventSource<Model, Event>: Connectable {
192192
case active(Consumer<Event>)
193193
}
194194
private(set) var connections: [Connection] = []
195-
private(set) var models: [Model] = []
195+
private let queue = DispatchQueue(label: "modelsQueue", attributes: .concurrent)
196196
private var pendingEvent: Event?
197+
private var _models: [Model] = []
198+
var models: [Model] { queue.sync { _models } }
197199
var shouldProcessModel: ((Model) -> Bool) = { _ in true }
198200

199201
var activeConnections: [Consumer<Event>] {
@@ -224,7 +226,9 @@ class TestConnectableEventSource<Model, Event>: Connectable {
224226
acceptClosure: { [weak self] model in
225227
guard let self else { return }
226228
if shouldProcessModel(model) {
227-
models.append(model)
229+
queue.async(flags: .barrier) { [weak self] in
230+
self?._models.append(model)
231+
}
228232
}
229233
}, disposeClosure: { [weak self] in
230234
self?.connections[index] = .disposed

0 commit comments

Comments
 (0)