|
| | ThreadRunner () |
| |
| | ThreadRunner (const QList< Species * > &speciesList) |
| |
| void | setup (const QList< ResourceUnit * > &resourceUnitList) |
| |
| void | setup (const QList< Species * > &speciesList) |
| |
| bool | multithreading () const |
| |
| void | setMultithreading (const bool do_multithreading) |
| |
| void | print () |
| | print useful debug messages More...
|
| |
| void | run (void(*funcptr)(ResourceUnit *), const bool forceSingleThreaded=false) const |
| | execute 'funcptr' for all resource units in parallel More...
|
| |
| void | run (void(*funcptr)(Species *), const bool forceSingleThreaded=false) const |
| | execute 'funcptr' for set of species in parallel More...
|
| |
| template<class T > |
| void | run (T *(*funcptr)(T *), const QVector< T * > &container, const bool forceSingleThreaded=false) const |
| |
| template<class T > |
| void | run (void(*funcptr)(T &), QVector< T > &container, const bool forceSingleThreaded=false) const |
| |
| template<class T > |
| void | runGrid (void(*funcptr)(T *, T *), T *begin, T *end, const bool forceSingleThreaded=false, int minsize=10000, int maxchunks=10000) const |
| |
Encapsulates the invokation of multiple threads for paralellized tasks.
To avoid lost updates during the light influence pattern application, all the resourceUnits are divided in two lists based on the index (even vs. uneven). These (for almost all cases) ensures, that no directly neighboring resourceUnits are processed.