It is common to have a Barrier A blocked by the shutdown of another Barrier B. A timeout in B may cause a crash report to be produced either for A or for B. If the implementor did not take time to add the state of B to the state of A, the crash report is not sufficient to make the difference. Therefore, we should make it easier for implementors to make sure that the state of A contains the state of B. A possible API would be to extend addBlocker to accept a Barrier as a blocker.
David, is this bug still something we might want to do? If so, we may consider mentoring a contributor with some previous experience.
This code is safety-critical. I'm willing to mentor, but as an advanced bug.