diff --git a/icu4c/source/common/umutex.cpp b/icu4c/source/common/umutex.cpp index d31753ff31..8be43bf960 100644 --- a/icu4c/source/common/umutex.cpp +++ b/icu4c/source/common/umutex.cpp @@ -90,7 +90,8 @@ std::mutex *UMutex::getMutex() { if (retPtr == nullptr) { std::call_once(*pInitFlag, umtx_init); std::lock_guard guard(*initMutex); - if (fMutex.load() == nullptr) { + retPtr = fMutex.load(std::memory_order_acquire); + if (retPtr == nullptr) { fMutex = new(fStorage) std::mutex(); retPtr = fMutex; fListLink = gListHead;