@@ -42,7 +42,7 @@ class DatabaseAfterNextTransactionCommitTests: GRDBTestCase {
42
42
43
43
let dbQueue = try makeDatabaseQueue ( )
44
44
try dbQueue. writeWithoutTransaction { db in
45
- var commitCount = 0
45
+ let commitCountMutex = Mutex ( 0 )
46
46
weak var deallocationWitness : Witness ? = nil
47
47
do {
48
48
let witness = Witness ( )
@@ -51,19 +51,19 @@ class DatabaseAfterNextTransactionCommitTests: GRDBTestCase {
51
51
db. afterNextTransaction { _ in
52
52
// use witness
53
53
withExtendedLifetime ( witness, { } )
54
- commitCount += 1
54
+ commitCountMutex . increment ( )
55
55
}
56
56
}
57
57
58
58
XCTAssertNotNil ( deallocationWitness)
59
- XCTAssertEqual ( commitCount , 0 )
59
+ XCTAssertEqual ( commitCountMutex . load ( ) , 0 )
60
60
try db. execute ( sql: startSQL)
61
61
try db. execute ( sql: endSQL)
62
62
switch expectedCompletion {
63
63
case . commit:
64
- XCTAssertEqual ( commitCount , 1 , " \( startSQL) ; \( endSQL) " )
64
+ XCTAssertEqual ( commitCountMutex . load ( ) , 1 , " \( startSQL) ; \( endSQL) " )
65
65
case . rollback:
66
- XCTAssertEqual ( commitCount , 0 , " \( startSQL) ; \( endSQL) " )
66
+ XCTAssertEqual ( commitCountMutex . load ( ) , 0 , " \( startSQL) ; \( endSQL) " )
67
67
}
68
68
XCTAssertNil ( deallocationWitness)
69
69
@@ -73,9 +73,9 @@ class DatabaseAfterNextTransactionCommitTests: GRDBTestCase {
73
73
}
74
74
switch expectedCompletion {
75
75
case . commit:
76
- XCTAssertEqual ( commitCount , 1 , " \( startSQL) ; \( endSQL) " )
76
+ XCTAssertEqual ( commitCountMutex . load ( ) , 1 , " \( startSQL) ; \( endSQL) " )
77
77
case . rollback:
78
- XCTAssertEqual ( commitCount , 0 , " \( startSQL) ; \( endSQL) " )
78
+ XCTAssertEqual ( commitCountMutex . load ( ) , 0 , " \( startSQL) ; \( endSQL) " )
79
79
}
80
80
}
81
81
}
@@ -85,8 +85,8 @@ class DatabaseAfterNextTransactionCommitTests: GRDBTestCase {
85
85
86
86
let dbQueue = try makeDatabaseQueue ( )
87
87
try dbQueue. writeWithoutTransaction { db in
88
- var commitCount = 0
89
- var rollbackCount = 0
88
+ let commitCountMutex = Mutex ( 0 )
89
+ let rollbackCountMutex = Mutex ( 0 )
90
90
try db. execute ( sql: startSQL)
91
91
92
92
weak var deallocationWitness : Witness ? = nil
@@ -98,25 +98,25 @@ class DatabaseAfterNextTransactionCommitTests: GRDBTestCase {
98
98
onCommit: { _ in
99
99
// use witness
100
100
withExtendedLifetime ( witness, { } )
101
- commitCount += 1
101
+ commitCountMutex . increment ( )
102
102
} ,
103
103
onRollback: { _ in
104
104
// use witness
105
105
withExtendedLifetime ( witness, { } )
106
- rollbackCount += 1
106
+ rollbackCountMutex . increment ( )
107
107
} )
108
108
}
109
109
110
110
XCTAssertNotNil ( deallocationWitness)
111
- XCTAssertEqual ( commitCount , 0 )
111
+ XCTAssertEqual ( commitCountMutex . load ( ) , 0 )
112
112
try db. execute ( sql: endSQL)
113
113
switch expectedCompletion {
114
114
case . commit:
115
- XCTAssertEqual ( commitCount , 1 , " \( startSQL) ; \( endSQL) " )
116
- XCTAssertEqual ( rollbackCount , 0 , " \( startSQL) ; \( endSQL) " )
115
+ XCTAssertEqual ( commitCountMutex . load ( ) , 1 , " \( startSQL) ; \( endSQL) " )
116
+ XCTAssertEqual ( rollbackCountMutex . load ( ) , 0 , " \( startSQL) ; \( endSQL) " )
117
117
case . rollback:
118
- XCTAssertEqual ( commitCount , 0 , " \( startSQL) ; \( endSQL) " )
119
- XCTAssertEqual ( rollbackCount , 1 , " \( startSQL) ; \( endSQL) " )
118
+ XCTAssertEqual ( commitCountMutex . load ( ) , 0 , " \( startSQL) ; \( endSQL) " )
119
+ XCTAssertEqual ( rollbackCountMutex . load ( ) , 1 , " \( startSQL) ; \( endSQL) " )
120
120
}
121
121
XCTAssertNil ( deallocationWitness)
122
122
@@ -126,11 +126,11 @@ class DatabaseAfterNextTransactionCommitTests: GRDBTestCase {
126
126
}
127
127
switch expectedCompletion {
128
128
case . commit:
129
- XCTAssertEqual ( commitCount , 1 , " \( startSQL) ; \( endSQL) " )
130
- XCTAssertEqual ( rollbackCount , 0 , " \( startSQL) ; \( endSQL) " )
129
+ XCTAssertEqual ( commitCountMutex . load ( ) , 1 , " \( startSQL) ; \( endSQL) " )
130
+ XCTAssertEqual ( rollbackCountMutex . load ( ) , 0 , " \( startSQL) ; \( endSQL) " )
131
131
case . rollback:
132
- XCTAssertEqual ( commitCount , 0 , " \( startSQL) ; \( endSQL) " )
133
- XCTAssertEqual ( rollbackCount , 1 , " \( startSQL) ; \( endSQL) " )
132
+ XCTAssertEqual ( commitCountMutex . load ( ) , 0 , " \( startSQL) ; \( endSQL) " )
133
+ XCTAssertEqual ( rollbackCountMutex . load ( ) , 1 , " \( startSQL) ; \( endSQL) " )
134
134
}
135
135
}
136
136
}
0 commit comments