GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy > Class Template Reference

#include <ParallelWork.h>

List of all members.

Classes

struct  ThreadLocalData

Public Member Functions

 ForEachWork (FunctionTy &f, const char *l)
template<typename W >
 ForEachWork (W &w, FunctionTy &f, const char *l)
template<typename RangeTy >
void AddInitialWork (RangeTy range)
void operator() ()

Protected Types

typedef T value_type
typedef WorkListTy::template
retype< value_type >::WL 
WLTy
typedef WorkList::GFIFO
< value_type
AbortedList

Protected Member Functions

void commitIteration (ThreadLocalData &tld)
GALOIS_ATTRIBUTE_NOINLINE void abortIteration (value_type val, ThreadLocalData &tld, bool recursiveAbort)
void doProcess (boost::optional< value_type > &p, ThreadLocalData &tld)
GALOIS_ATTRIBUTE_NOINLINE void handleBreak (ThreadLocalData &tld)
bool runQueueSimple (ThreadLocalData &tld)
template<bool limit, typename WL >
bool runQueue (ThreadLocalData &tld, WL &lwl, bool recursiveAbort)
GALOIS_ATTRIBUTE_NOINLINE bool handleAborts (ThreadLocalData &tld)
template<bool checkAbort>
void go ()

Protected Attributes

WLTywl
FunctionTy & origFunction
WLTy default_wl
const char * loopname
TerminationDetectionterm
PerPackageStorage< AbortedListaborted
LL::CacheLineStorage< bool > broke

template<class WorkListTy, class T, class FunctionTy>
class GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >


Member Typedef Documentation

template<class WorkListTy , class T , class FunctionTy >
typedef WorkList::GFIFO<value_type> GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::AbortedList [protected]
template<class WorkListTy , class T , class FunctionTy >
typedef T GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::value_type [protected]
template<class WorkListTy , class T , class FunctionTy >
typedef WorkListTy::template retype<value_type>::WL GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::WLTy [protected]

Constructor & Destructor Documentation

template<class WorkListTy , class T , class FunctionTy >
GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::ForEachWork ( FunctionTy &  f,
const char *  l 
) [inline]
template<class WorkListTy , class T , class FunctionTy >
template<typename W >
GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::ForEachWork ( W &  w,
FunctionTy &  f,
const char *  l 
) [inline]

Member Function Documentation

template<class WorkListTy , class T , class FunctionTy >
GALOIS_ATTRIBUTE_NOINLINE void GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::abortIteration ( value_type  val,
ThreadLocalData tld,
bool  recursiveAbort 
) [inline, protected]
template<class WorkListTy , class T , class FunctionTy >
template<typename RangeTy >
void GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::AddInitialWork ( RangeTy  range  )  [inline]
template<class WorkListTy , class T , class FunctionTy >
void GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::commitIteration ( ThreadLocalData tld  )  [inline, protected]
template<class WorkListTy , class T , class FunctionTy >
void GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::doProcess ( boost::optional< value_type > &  p,
ThreadLocalData tld 
) [inline, protected]
template<class WorkListTy , class T , class FunctionTy >
template<bool checkAbort>
void GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::go (  )  [inline, protected]
template<class WorkListTy , class T , class FunctionTy >
GALOIS_ATTRIBUTE_NOINLINE bool GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::handleAborts ( ThreadLocalData tld  )  [inline, protected]
template<class WorkListTy , class T , class FunctionTy >
GALOIS_ATTRIBUTE_NOINLINE void GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::handleBreak ( ThreadLocalData tld  )  [inline, protected]
template<class WorkListTy , class T , class FunctionTy >
void GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::operator() ( void   )  [inline]
template<class WorkListTy , class T , class FunctionTy >
template<bool limit, typename WL >
bool GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::runQueue ( ThreadLocalData tld,
WL &  lwl,
bool  recursiveAbort 
) [inline, protected]
template<class WorkListTy , class T , class FunctionTy >
bool GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::runQueueSimple ( ThreadLocalData tld  )  [inline, protected]

Member Data Documentation

template<class WorkListTy , class T , class FunctionTy >
PerPackageStorage<AbortedList> GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::aborted [protected]
template<class WorkListTy , class T , class FunctionTy >
LL::CacheLineStorage<bool> GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::broke [protected]
template<class WorkListTy , class T , class FunctionTy >
WLTy GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::default_wl [protected]
template<class WorkListTy , class T , class FunctionTy >
const char* GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::loopname [protected]
template<class WorkListTy , class T , class FunctionTy >
FunctionTy& GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::origFunction [protected]
template<class WorkListTy , class T , class FunctionTy >
TerminationDetection& GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::term [protected]
template<class WorkListTy , class T , class FunctionTy >
WLTy& GaloisRuntime::ForEachWork< WorkListTy, T, FunctionTy >::wl [protected]

The documentation for this class was generated from the following file:

Generated on 12 Apr 2013 for Galois by  doxygen 1.6.1