Skip to content

Commit 4e09379

Browse files
authored
chore: Fix data race in MockStateMachine (#791)
1 parent 29f0bab commit 4e09379

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginTests/TestSupport/Mocks/MockStateMachine.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,21 @@
66
//
77

88
import Foundation
9+
import Amplify
910
@testable import AWSDataStoreCategoryPlugin
1011

1112
class MockStateMachine<S, A>: StateMachine<S, A> {
1213
typealias ExpectActionCriteria = (_ action: A) -> Void
13-
var expectActionCriteriaQueue: [ExpectActionCriteria]
14+
var expectActionCriteriaQueue: AtomicValue<[ExpectActionCriteria]>
1415

1516
override init(initialState: S, resolver: @escaping Reducer) {
16-
self.expectActionCriteriaQueue = []
17+
self.expectActionCriteriaQueue = AtomicValue(initialValue: [])
1718
super.init(initialState: initialState, resolver: resolver)
1819
}
1920
override func notify(action: A) {
20-
if let expectActionCriteria = expectActionCriteriaQueue.first {
21+
if let expectActionCriteria = expectActionCriteriaQueue.get().first {
2122
expectActionCriteria(action)
22-
expectActionCriteriaQueue.removeFirst(1)
23+
expectActionCriteriaQueue.with { $0.removeFirst(1) }
2324
}
2425
}
2526
func pushExpectActionCriteria(expectActionCriteria: @escaping ExpectActionCriteria) {

0 commit comments

Comments
 (0)