20 #ifndef GALOIS_WORKLIST_FIFO_H
21 #define GALOIS_WORKLIST_FIFO_H
26 #include "galois/config.h"
35 template <
typename T,
typename container = std::deque<T>,
bool popBack = true>
36 class Wrapper :
private boost::noncopyable {
41 template <
typename _T>
50 std::lock_guard<substrate::PaddedLock<true>> lg(lock);
54 template <
typename Iter>
55 void push(Iter b, Iter e) {
56 std::lock_guard<substrate::PaddedLock<true>> lg(lock);
57 wl.insert(wl.end(), b, e);
60 template <
typename RangeTy>
63 push(range.begin(), range.end());
68 std::lock_guard<substrate::PaddedLock<true>> lg(lock);
82 template <
typename T =
int>
85 template <
typename T =
int>
88 template <
typename T =
int>
91 template <
typename T =
int>
T value_type
Definition: Simple.h:47
galois::optional< value_type > pop()
Definition: Simple.h:66
Simple Container Wrapper worklist (not scalable).
Definition: Simple.h:36
void push(const value_type &val)
Definition: Simple.h:49
Galois version of boost::optional.
Definition: optional.h:34
static unsigned getTID()
Definition: ThreadPool.h:204
void push_initial(const RangeTy &range)
Definition: Simple.h:61
#define GALOIS_WLCOMPILECHECK(name)
Definition: WLCompileCheck.h:26
Definition: PaddedLock.h:35
void push(Iter b, Iter e)
Definition: Simple.h:55