1
1
mirror of https://github.com/rui314/mold.git synced 2024-09-22 02:20:51 +03:00

Use compare_exchange_weak instead of strong version

I'm not sure if that makes any difference (at least on x86, it doesn't),
but this change is harmless, so I'm making this change.
This commit is contained in:
Rui Ueyama 2021-08-25 04:04:02 +00:00
parent be4f2f52b2
commit e4e618628f
3 changed files with 3 additions and 3 deletions

View File

@ -51,7 +51,7 @@ ConcurrentMap<T>::insert(std::string_view key, u64 hash, const T &val) {
}
if (ptr == nullptr) {
if (!keys[idx].compare_exchange_strong(ptr, locked))
if (!keys[idx].compare_exchange_weak(ptr, locked))
continue;
new (values + idx) T(val);
sizes[idx] = key.size();

View File

@ -833,7 +833,7 @@ void ObjectFile<E>::merge_visibility(Context<E> &ctx, Symbol<E> &sym,
u8 val = sym.visibility;
while (priority(visibility) < priority(val))
if (sym.visibility.compare_exchange_strong(val, visibility))
if (sym.visibility.compare_exchange_weak(val, visibility))
break;
}

View File

@ -1170,7 +1170,7 @@ MergedSection<E>::insert(std::string_view data, u64 hash, i64 alignment) {
ASSERT(frag);
for (u16 cur = frag->alignment; cur < alignment;)
if (frag->alignment.compare_exchange_strong(cur, alignment))
if (frag->alignment.compare_exchange_weak(cur, alignment))
break;
return frag;
}