Commit 46428a7
committed
Refuse recursive read locks in lockorder testing
Our existing lockorder tests assume that a read lock on a thread
that is already holding the same read lock is totally fine. This
isn't at all true. The `std` `RwLock` behavior is
platform-dependent - on most platforms readers can starve writers
as readers will never block for a pending writer. However, on
platforms where this is not the case, one thread trying to take a
write lock may deadlock with another thread that both already has,
and is attempting to take again, a read lock.
Worse, our in-tree `FairRwLock` exhibits this behavior explicitly
on all platforms to avoid the starvation issue.
Thus, we shouldn't have any special handling for allowing recursive
read locks, so we simply remove it here.1 parent cd0bfdb commit 46428a7
File tree
4 files changed
+37
-62
lines changed- lightning/src
- ln
- sync
4 files changed
+37
-62
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1426 | 1426 | | |
1427 | 1427 | | |
1428 | 1428 | | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
1429 | 1432 | | |
1430 | 1433 | | |
1431 | | - | |
1432 | 1434 | | |
1433 | 1435 | | |
1434 | 1436 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1275 | 1275 | | |
1276 | 1276 | | |
1277 | 1277 | | |
| 1278 | + | |
1278 | 1279 | | |
1279 | | - | |
1280 | | - | |
1281 | 1280 | | |
1282 | 1281 | | |
1283 | | - | |
1284 | | - | |
1285 | 1282 | | |
1286 | | - | |
1287 | 1283 | | |
1288 | 1284 | | |
1289 | 1285 | | |
1290 | 1286 | | |
1291 | 1287 | | |
1292 | 1288 | | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
1293 | 1296 | | |
1294 | 1297 | | |
1295 | 1298 | | |
1296 | 1299 | | |
1297 | 1300 | | |
1298 | 1301 | | |
1299 | | - | |
1300 | 1302 | | |
1301 | 1303 | | |
1302 | 1304 | | |
1303 | 1305 | | |
1304 | 1306 | | |
| 1307 | + | |
1305 | 1308 | | |
1306 | | - | |
1307 | | - | |
1308 | 1309 | | |
1309 | 1310 | | |
1310 | | - | |
1311 | | - | |
1312 | 1311 | | |
1313 | | - | |
1314 | 1312 | | |
1315 | 1313 | | |
1316 | 1314 | | |
1317 | 1315 | | |
1318 | 1316 | | |
1319 | 1317 | | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
1320 | 1326 | | |
1321 | 1327 | | |
1322 | 1328 | | |
1323 | 1329 | | |
1324 | 1330 | | |
1325 | 1331 | | |
1326 | | - | |
1327 | | - | |
1328 | 1332 | | |
1329 | 1333 | | |
1330 | 1334 | | |
1331 | 1335 | | |
1332 | 1336 | | |
| 1337 | + | |
1333 | 1338 | | |
1334 | | - | |
1335 | | - | |
1336 | 1339 | | |
1337 | 1340 | | |
1338 | | - | |
1339 | | - | |
1340 | 1341 | | |
1341 | | - | |
1342 | 1342 | | |
1343 | 1343 | | |
1344 | 1344 | | |
1345 | 1345 | | |
1346 | 1346 | | |
1347 | 1347 | | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
| 1352 | + | |
| 1353 | + | |
| 1354 | + | |
1348 | 1355 | | |
1349 | 1356 | | |
1350 | 1357 | | |
1351 | 1358 | | |
1352 | 1359 | | |
1353 | | - | |
1354 | | - | |
1355 | 1360 | | |
1356 | 1361 | | |
1357 | 1362 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
125 | | - | |
126 | | - | |
127 | | - | |
| 125 | + | |
128 | 126 | | |
129 | 127 | | |
130 | 128 | | |
131 | 129 | | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | 130 | | |
139 | | - | |
| 131 | + | |
140 | 132 | | |
141 | 133 | | |
142 | 134 | | |
| |||
160 | 152 | | |
161 | 153 | | |
162 | 154 | | |
163 | | - | |
164 | 155 | | |
165 | | - | |
166 | 156 | | |
167 | 157 | | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | 158 | | |
172 | 159 | | |
173 | 160 | | |
| |||
255 | 242 | | |
256 | 243 | | |
257 | 244 | | |
258 | | - | |
259 | 245 | | |
260 | 246 | | |
261 | 247 | | |
| |||
274 | 260 | | |
275 | 261 | | |
276 | 262 | | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | 263 | | |
284 | 264 | | |
285 | 265 | | |
| |||
314 | 294 | | |
315 | 295 | | |
316 | 296 | | |
317 | | - | |
318 | | - | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
319 | 302 | | |
320 | 303 | | |
321 | 304 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
| 14 | + | |
13 | 15 | | |
14 | 16 | | |
15 | 17 | | |
| |||
61 | 63 | | |
62 | 64 | | |
63 | 65 | | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | 66 | | |
82 | 67 | | |
83 | 68 | | |
| |||
0 commit comments