Repository navigation
Commit 1a6a556
committed
Stage 3 review: clear passes through when unbound, like the rest
The pass-through guard reached every intercepted method except this one. A
retained delegating wrapper therefore had a retired bridge take its lock and
invalidate its state on someone else's behalf -- and taking the lock is not
harmless: the caller may hold a higher-level lock, and the ordering rule
forbids that nesting, so acting as owner turned someone else's clear into an
exception.
The test could not have caught it. It asserted the delegated call returned,
which it did whenever nothing else held a lock. It now asserts what the guard
is actually for: no terminal transaction is taken, under a higher-level lock,
and the retired bridge's own state is left alone.1 parent 8f745a2 commit 1a6a556
2 files changed
Lines changed: 38 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
546 | 546 | | |
547 | 547 | | |
548 | 548 | | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
549 | 553 | | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
550 | 557 | | |
551 | 558 | | |
552 | 559 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
| 35 | + | |
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| |||
1514 | 1514 | | |
1515 | 1515 | | |
1516 | 1516 | | |
1517 | | - | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
| 1522 | + | |
| 1523 | + | |
1518 | 1524 | | |
1519 | 1525 | | |
1520 | 1526 | | |
| |||
1528 | 1534 | | |
1529 | 1535 | | |
1530 | 1536 | | |
| 1537 | + | |
1531 | 1538 | | |
1532 | | - | |
| 1539 | + | |
| 1540 | + | |
1533 | 1541 | | |
1534 | 1542 | | |
1535 | 1543 | | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
| 1555 | + | |
| 1556 | + | |
| 1557 | + | |
| 1558 | + | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
| 1562 | + | |
| 1563 | + | |
1536 | 1564 | | |
1537 | 1565 | | |
1538 | 1566 | | |
| |||
0 commit comments