#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.