![]() |
|
#include <RunQueue.h>
Classes | |
struct | Elem |
Public Member Functions | |
RunQueue () | |
~RunQueue () | |
Work | PushFront (Work w) |
Work | PopFront () |
Work | PushBack (Work w) |
Work | PopBack () |
unsigned | PopBackHalf (std::vector< Work > *result) |
unsigned | Size () const |
bool | Empty () const |
void | Flush () |
Private Types | |
enum | State { kEmpty , kBusy , kReady } |
Private Member Functions | |
template<bool NeedSizeEstimate> | |
unsigned | SizeOrNotEmpty () const |
EIGEN_ALWAYS_INLINE unsigned | CalculateSize (unsigned front, unsigned back) const |
RunQueue (const RunQueue &)=delete | |
void | operator= (const RunQueue &)=delete |
Private Attributes | |
EIGEN_ALIGN_TO_AVOID_FALSE_SHARING std::atomic< unsigned > | front_ |
EIGEN_ALIGN_TO_AVOID_FALSE_SHARING std::atomic< unsigned > | back_ |
EIGEN_MUTEX | mutex_ |
EIGEN_ALIGN_TO_AVOID_FALSE_SHARING Elem | array_ [kSize] |
Static Private Attributes | |
static const unsigned | kMask = kSize - 1 |
static const unsigned | kMask2 = (kSize << 1) - 1 |
|
private |
|
inline |
References Eigen::RunQueue< Work, kSize >::array_, eigen_plain_assert, i, and Eigen::RunQueue< Work, kSize >::kEmpty.
|
inline |
References eigen_plain_assert, and Eigen::RunQueue< Work, kSize >::Size().
|
privatedelete |
|
inlineprivate |
References EIGEN_PREDICT_FALSE, Eigen::RunQueue< Work, kSize >::kMask2, and size.
Referenced by Eigen::RunQueue< Work, kSize >::SizeOrNotEmpty().
|
inline |
|
inline |
|
privatedelete |
|
inline |
References Eigen::RunQueue< Work, kSize >::array_, Eigen::RunQueue< Work, kSize >::back_, e(), Eigen::RunQueue< Work, kSize >::Empty(), Eigen::RunQueue< Work, kSize >::kBusy, Eigen::RunQueue< Work, kSize >::kEmpty, Eigen::RunQueue< Work, kSize >::kMask, Eigen::RunQueue< Work, kSize >::kReady, Eigen::RunQueue< Work, kSize >::mutex_, s, and w.
|
inline |
References Eigen::RunQueue< Work, kSize >::array_, Eigen::RunQueue< Work, kSize >::back_, e(), eigen_plain_assert, Eigen::RunQueue< Work, kSize >::Empty(), Eigen::RunQueue< Work, kSize >::kBusy, Eigen::RunQueue< Work, kSize >::kEmpty, Eigen::RunQueue< Work, kSize >::kMask, Eigen::RunQueue< Work, kSize >::kReady, Eigen::RunQueue< Work, kSize >::mutex_, n, s, size, Eigen::RunQueue< Work, kSize >::Size(), and oomph::CumulativeTimings::start().
|
inline |
References Eigen::RunQueue< Work, kSize >::array_, e(), Eigen::RunQueue< Work, kSize >::front_, Eigen::RunQueue< Work, kSize >::kBusy, Eigen::RunQueue< Work, kSize >::kEmpty, Eigen::RunQueue< Work, kSize >::kMask, Eigen::RunQueue< Work, kSize >::kMask2, Eigen::RunQueue< Work, kSize >::kReady, s, and w.
Referenced by Eigen::RunQueue< Work, kSize >::Flush().
|
inline |
References Eigen::RunQueue< Work, kSize >::array_, Eigen::RunQueue< Work, kSize >::back_, e(), Eigen::RunQueue< Work, kSize >::kBusy, Eigen::RunQueue< Work, kSize >::kEmpty, Eigen::RunQueue< Work, kSize >::kMask, Eigen::RunQueue< Work, kSize >::kMask2, Eigen::RunQueue< Work, kSize >::kReady, Eigen::RunQueue< Work, kSize >::mutex_, s, and w.
|
inline |
References Eigen::RunQueue< Work, kSize >::array_, e(), Eigen::RunQueue< Work, kSize >::front_, Eigen::RunQueue< Work, kSize >::kBusy, Eigen::RunQueue< Work, kSize >::kEmpty, Eigen::RunQueue< Work, kSize >::kMask, Eigen::RunQueue< Work, kSize >::kReady, s, and w.
|
inline |
|
inlineprivate |
References Eigen::RunQueue< Work, kSize >::back_, Eigen::RunQueue< Work, kSize >::CalculateSize(), eigen_assert, Eigen::RunQueue< Work, kSize >::front_, and Eigen::RunQueue< Work, kSize >::kMask2.
|
private |
|
private |
|
private |
|
staticprivate |
|
staticprivate |
|
private |