50 "CoreConfiguration was already instantiated before builder "
51 "registration was completed");
54 n->next =
builders_.load(std::memory_order_relaxed);
55 while (!
builders_.compare_exchange_weak(
n->next,
n, std::memory_order_acq_rel,
56 std::memory_order_relaxed)) {
59 "CoreConfiguration was already instantiated before builder "
60 "registration was completed");
71 std::vector<RegisteredBuilder*> registered_builders;
73 b !=
nullptr;
b =
b->next) {
74 registered_builders.push_back(
b);
76 for (
auto it = registered_builders.rbegin();
it != registered_builders.rend();
88 if (!
config_.compare_exchange_strong(expected, p, std::memory_order_acq_rel,
89 std::memory_order_acquire)) {
97 delete config_.exchange(
nullptr, std::memory_order_acquire);
99 builders_.exchange(
nullptr, std::memory_order_acquire);