libjmmcg  release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
thread_params_traits.hpp File Reference
#include "info.hpp"
#include "ttypes.hpp"
#include <boost/mpl/assert.hpp>
#include <cassert>
#include <array>
Include dependency graph for thread_params_traits.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue
 The thread_pool owns a single queue into which input_work is placed & from which thread_wk_t is distributed. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::work_distribution_mode_t::queue_model_t::thread_owns_queue< SM >
 The pool_threads own a queue each into which work that thread places work it generates. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::work_distribution_mode_t::one_thread_distributes< QM >
 . Master-slave; the master thread would be the limiting resource. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::work_distribution_mode_t::worker_threads_get_work< QM >
 
class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::thread_params< API >
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::model_traits< Cr, Dr, Sy >
 

Namespaces

namespace  jmmcg
 Link with -lrt to include these functions.
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd
 Parallel Pixie Dust or PPD is the name of the thread library within libjmmcg.
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits
 A namespace to hold various traits relating to selecting the specific specialisation of thread_pool they would like.
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::work_distribution_mode_t
 Various models of work distribution.
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::work_distribution_mode_t::queue_model_t
 

Typedefs

using jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::sequential_mode = model_traits< generic_traits::creation_cost::sequential_creation, generic_traits::destruction_cost::sequential_destruction, generic_traits::synchronisation_cost::sequential_sync >
 I.e. single-threaded, no locks. More...
 
using jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::heavyweight_threading = model_traits< generic_traits::creation_cost::expensive_to_create, generic_traits::destruction_cost::expensive_to_destroy, generic_traits::synchronisation_cost::expensive_to_synchronise >
 
using jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::lightweight_threading = model_traits< generic_traits::creation_cost::cheap_to_create, generic_traits::destruction_cost::cheap_to_destroy, generic_traits::synchronisation_cost::cheap_to_synchronise >
 E.g. x86 or SPARC. More...
 

Enumerations

enum class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::creation_cost { jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::sequential_creation , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::expensive_to_create , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::cheap_to_create }
 
enum class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::destruction_cost { jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::sequential_destruction , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::expensive_to_destroy , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::cheap_to_destroy }
 
enum class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::synchronisation_cost { jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::sequential_sync , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::expensive_to_synchronise , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::cheap_to_synchronise }
 
enum class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::return_data { jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::joinable , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::nonjoinable }
 
enum class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::api_type { jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::no_api , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::MS_Win32 , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::posix_pthreads , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::IBM_cyclops }
 
enum class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::memory_access_modes { jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::erew_memory_access , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::crew_memory_access }
 The various memory access modes that the assorted locks may support. More...
 
enum class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::work_distribution_mode_t::queue_model_t::stealing_mode_t { jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::work_distribution_mode_t::queue_model_t::random }
 
enum class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::size_mode_t {
  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::sequential , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::fixed_size , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::time_average_size , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::tracks_to_max ,
  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::infinite
}
 Control the size of the thread pool in various ways. More...
 
enum class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::priority_mode_t { jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::normal , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::priority }
 Specifiy if the thread_pool can sort work by some form of priority, executing the highest first. More...
 

Functions

tostream &__fastcall FORCE_INLINE jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::operator<< (tostream &os, api_type const &api)
 
template<generic_traits::api_type API>
tostream &__fastcall FORCE_INLINE jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::operator<< (tostream &os, thread_params< API > const &p)