1 #ifndef FWCore_Concurrency_ThreadSafeAddOnlyContainer_h 2 #define FWCore_Concurrency_ThreadSafeAddOnlyContainer_h 37 template <
typename... Args>
43 template <
typename... Args>
62 Node const* node = front_.load();
71 template <
typename... Args>
73 Node* expected = front_.load();
74 Node* newNode =
new Node(expected, std::forward<Args>(
args)...);
75 while (!front_.compare_exchange_strong(expected, newNode)) {
83 template <
typename... Args>
85 : next_(iNext), data_(
std::forward<Args>(
args)...) {}
Node const * next() const
ThreadSafeAddOnlyContainer()
std::atomic< Node * > front_
T * makeAndHold(Args &&... args)
~ThreadSafeAddOnlyContainer()
Node(Node *iNext, Args &&... args)