1 #ifndef FWCore_Concurrency_ThreadSafeAddOnlyContainer_h
2 #define FWCore_Concurrency_ThreadSafeAddOnlyContainer_h
38 template <
typename...
Args>
46 template <
typename...
Args>
68 Node const* node = front_.load();
77 template <
typename...
Args>
79 Node* expected = front_.load();
80 Node* newNode =
new Node(expected, std::forward<Args>(
args)...);
81 while (!front_.compare_exchange_strong(expected, newNode)) {
89 template <
typename...
Args>
T * makeAndHold(Args &&...args)
ThreadSafeAddOnlyContainer()
Node const * next() const
std::atomic< Node * > front_
Node(Node *iNext, Args &&...args)
~ThreadSafeAddOnlyContainer()
edm::TrieNode< PDet > Node