<i18n dev> RFR: 8263090: Avoid reading volatile fields twice in Locale.getDefault(Category) [v2]

Sergey Bylokhov serb at openjdk.java.net
Sat Mar 6 05:54:07 UTC 2021

On Fri, 5 Mar 2021 18:53:29 GMT, Claes Redestad <redestad at openjdk.org> wrote:

>> This patch refactors Locale.getDefault(Category) so that the volatile field holding the Locale is typically only read once. This has a small performance advantage, and might be more robust if initialization is racy.
> Claes Redestad has updated the pull request incrementally with one additional commit since the last revision:
>   Fix omitted synchronized

src/java.base/share/classes/java/util/Locale.java line 946:

> 944:             Locale loc = defaultDisplayLocale; // volatile read
> 945:             if (loc == null) {
> 946:                 loc = getDisplayLocale();

Just interesting how did you check that the performance difference is because of volatile read, and not because of replacing of the switch by the "if"?


PR: https://git.openjdk.java.net/jdk/pull/2845

More information about the i18n-dev mailing list