MCPcopy Create free account
hub / github.com/cameron314/concurrentqueue / add

Method add

tests/corealgos.h:56–65  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

54 inline T* tail() { return tail_.load(std::memory_order_acquire); }
55
56 void add(T* element)
57 {
58 assert(element != nullptr);
59
60 // Add it to the lock-free list
61 auto prevTail = tail_.load(std::memory_order_relaxed);
62 do {
63 element->concurrentListPrev = prevTail;
64 } while (!tail_.compare_exchange_weak(prevTail, element, std::memory_order_release, std::memory_order_relaxed));
65 }
66
67private:
68 std::atomic<T*> tail_;

Callers

nothing calls this directly

Calls 3

assertClass · 0.85
loadMethod · 0.45
compare_exchange_weakMethod · 0.45

Tested by

no test coverage detected