#include <NonBlockingThreadPool.h>
Classes | |
struct | PerThread |
Public Types | |
typedef RunQueue< Task, 1024 > | Queue |
typedef Environment::Task | Task |
Public Member Functions | |
int | CurrentThreadId () const final |
NonBlockingThreadPoolTempl (int num_threads, Environment env=Environment()) | |
int | NumThreads () const final |
void | Schedule (std::function< void()> fn) |
~NonBlockingThreadPoolTempl () | |
Public Member Functions inherited from Eigen::ThreadPoolInterface | |
virtual | ~ThreadPoolInterface () |
Private Types | |
typedef Environment::EnvThread | Thread |
Private Member Functions | |
int | NonEmptyQueueIndex () |
Task | Steal () |
bool | WaitForWork (EventCount::Waiter *waiter, Task *t) |
void | WorkerLoop (int thread_id) |
Static Private Member Functions | |
static EIGEN_STRONG_INLINE PerThread * | GetPerThread () |
static EIGEN_STRONG_INLINE unsigned | Rand (uint64_t *state) |
Private Attributes | |
std::atomic< unsigned > | blocked_ |
MaxSizeVector< unsigned > | coprimes_ |
std::atomic< bool > | done_ |
EventCount | ec_ |
Environment | env_ |
MaxSizeVector< Queue * > | queues_ |
std::atomic< bool > | spinning_ |
MaxSizeVector< Thread * > | threads_ |
MaxSizeVector< EventCount::Waiter > | waiters_ |
Definition at line 17 of file NonBlockingThreadPool.h.
typedef RunQueue<Task, 1024> Eigen::NonBlockingThreadPoolTempl< Environment >::Queue |
Definition at line 20 of file NonBlockingThreadPool.h.
typedef Environment::Task Eigen::NonBlockingThreadPoolTempl< Environment >::Task |
Definition at line 19 of file NonBlockingThreadPool.h.
|
private |
Definition at line 115 of file NonBlockingThreadPool.h.
|
inline |
Definition at line 22 of file NonBlockingThreadPool.h.
|
inline |
Definition at line 62 of file NonBlockingThreadPool.h.
|
inlinefinalvirtual |
Implements Eigen::ThreadPoolInterface.
Definition at line 104 of file NonBlockingThreadPool.h.
|
inlinestaticprivate |
Definition at line 255 of file NonBlockingThreadPool.h.
|
inlineprivate |
Definition at line 237 of file NonBlockingThreadPool.h.
|
inlinefinalvirtual |
Implements Eigen::ThreadPoolInterface.
Definition at line 100 of file NonBlockingThreadPool.h.
|
inlinestaticprivate |
Definition at line 261 of file NonBlockingThreadPool.h.
|
inlinevirtual |
Implements Eigen::ThreadPoolInterface.
Definition at line 74 of file NonBlockingThreadPool.h.
|
inlineprivate |
Definition at line 173 of file NonBlockingThreadPool.h.
|
inlineprivate |
Definition at line 195 of file NonBlockingThreadPool.h.
|
inlineprivate |
Definition at line 135 of file NonBlockingThreadPool.h.
|
private |
Definition at line 129 of file NonBlockingThreadPool.h.
|
private |
Definition at line 127 of file NonBlockingThreadPool.h.
|
private |
Definition at line 131 of file NonBlockingThreadPool.h.
|
private |
Definition at line 132 of file NonBlockingThreadPool.h.
|
private |
Definition at line 124 of file NonBlockingThreadPool.h.
|
private |
Definition at line 126 of file NonBlockingThreadPool.h.
|
private |
Definition at line 130 of file NonBlockingThreadPool.h.
|
private |
Definition at line 125 of file NonBlockingThreadPool.h.
|
private |
Definition at line 128 of file NonBlockingThreadPool.h.