Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Circular doubly-linked list with sentinel. More...
#include <concurrent_monitor.h>
Classes | |
struct | node_t |
Public Member Functions | |
circular_doubly_linked_list_with_sentinel () | |
~circular_doubly_linked_list_with_sentinel () | |
size_t | size () const |
bool | empty () const |
node_t * | front () const |
node_t * | last () const |
node_t * | begin () const |
const node_t * | end () const |
void | add (node_t *n) |
add to the back of the list More... | |
void | remove (node_t &n) |
remove node 'n' More... | |
void | flush_to (circular_doubly_linked_list_with_sentinel &lst) |
move all elements to 'lst' and initialize the 'this' list More... | |
void | clear () |
Private Attributes | |
__TBB_atomic size_t | count |
node_t | head |
Additional Inherited Members | |
![]() | |
no_copy (const no_copy &)=delete | |
no_copy ()=default | |
Circular doubly-linked list with sentinel.
head.next points to the front and head.prev points to the back
Definition at line 33 of file concurrent_monitor.h.
|
inline |
Definition at line 42 of file concurrent_monitor.h.
References clear().
|
inline |
Definition at line 44 of file concurrent_monitor.h.
References __TBB_ASSERT, head, tbb::internal::circular_doubly_linked_list_with_sentinel::node_t::next, and tbb::internal::circular_doubly_linked_list_with_sentinel::node_t::prev.
add to the back of the list
Definition at line 54 of file concurrent_monitor.h.
References tbb::internal::__TBB_load_relaxed(), tbb::internal::__TBB_store_relaxed(), count, head, tbb::internal::circular_doubly_linked_list_with_sentinel::node_t::next, and tbb::internal::circular_doubly_linked_list_with_sentinel::node_t::prev.
Referenced by tbb::internal::concurrent_monitor::notify_relaxed(), and tbb::internal::concurrent_monitor::prepare_wait().
|
inline |
Definition at line 50 of file concurrent_monitor.h.
References front().
|
inline |
Definition at line 82 of file concurrent_monitor.h.
References tbb::internal::__TBB_store_relaxed(), count, head, tbb::internal::circular_doubly_linked_list_with_sentinel::node_t::next, and tbb::internal::circular_doubly_linked_list_with_sentinel::node_t::prev.
Referenced by tbb::internal::concurrent_monitor::abort_all_relaxed(), circular_doubly_linked_list_with_sentinel(), flush_to(), tbb::internal::concurrent_monitor::notify_all_relaxed(), and tbb::internal::concurrent_monitor::notify_relaxed().
|
inline |
Definition at line 47 of file concurrent_monitor.h.
References size().
Referenced by tbb::internal::concurrent_monitor::abort_all_relaxed(), tbb::internal::concurrent_monitor::notify_all_relaxed(), tbb::internal::concurrent_monitor::notify_one_relaxed(), tbb::internal::concurrent_monitor::notify_relaxed(), and tbb::internal::concurrent_monitor::~concurrent_monitor().
|
inline |
Definition at line 51 of file concurrent_monitor.h.
References head.
Referenced by tbb::internal::concurrent_monitor::abort_all_relaxed(), tbb::internal::concurrent_monitor::notify_all_relaxed(), tbb::internal::concurrent_monitor::notify_one_relaxed(), and tbb::internal::concurrent_monitor::notify_relaxed().
|
inline |
move all elements to 'lst' and initialize the 'this' list
Definition at line 71 of file concurrent_monitor.h.
References tbb::internal::__TBB_load_relaxed(), tbb::internal::__TBB_store_relaxed(), clear(), count, head, tbb::internal::circular_doubly_linked_list_with_sentinel::node_t::next, and tbb::internal::circular_doubly_linked_list_with_sentinel::node_t::prev.
Referenced by tbb::internal::concurrent_monitor::abort_all_relaxed(), and tbb::internal::concurrent_monitor::notify_all_relaxed().
|
inline |
Definition at line 48 of file concurrent_monitor.h.
References head, and tbb::internal::circular_doubly_linked_list_with_sentinel::node_t::next.
Referenced by tbb::internal::concurrent_monitor::abort_all_relaxed(), begin(), tbb::internal::concurrent_monitor::notify_all_relaxed(), tbb::internal::concurrent_monitor::notify_one_relaxed(), and tbb::internal::concurrent_monitor::notify_relaxed().
|
inline |
Definition at line 49 of file concurrent_monitor.h.
References head, and tbb::internal::circular_doubly_linked_list_with_sentinel::node_t::prev.
Referenced by tbb::internal::concurrent_monitor::notify_relaxed().
remove node 'n'
Definition at line 63 of file concurrent_monitor.h.
References __TBB_ASSERT, tbb::internal::__TBB_load_relaxed(), tbb::internal::__TBB_store_relaxed(), count, tbb::internal::circular_doubly_linked_list_with_sentinel::node_t::next, and tbb::internal::circular_doubly_linked_list_with_sentinel::node_t::prev.
Referenced by tbb::internal::concurrent_monitor::cancel_wait(), tbb::internal::concurrent_monitor::notify_one_relaxed(), and tbb::internal::concurrent_monitor::notify_relaxed().
|
inline |
Definition at line 46 of file concurrent_monitor.h.
References count.
Referenced by empty().
|
private |
Definition at line 84 of file concurrent_monitor.h.
Referenced by add(), clear(), flush_to(), remove(), and size().
|
private |
Definition at line 85 of file concurrent_monitor.h.
Referenced by add(), clear(), end(), flush_to(), front(), last(), and ~circular_doubly_linked_list_with_sentinel().