See if the code for ICU data loading can be simplified.
I've opened this ticket after reviewing ticket 8265, which was a fix for a threading race bug in data loading. While, as far as I can see, the code looks safe, it has also (over time, not just from bug 8265) grown in complexity to the point that it is difficult to have good confidence that everything is safe.
openCommonData() is confusing, and has a suspicious looking TODO.
The loop in doLoadFromCommonData() is confusing.
We also need to better document which data-related functions are thread safe and which aren't.