libjmmcg
release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
Todo List
Class
abseil_t
Consider using hashes from
.
Consider using hashes from . Member
BOOST_AUTO_TEST_CASE_TEMPLATE
(small_ctor, T, string_types)
In gcc 5.10 std::string uses small-string optimisation - needs testing.
In gcc 5.10 std::string uses small-string optimisation - needs testing. Class
business_state_machine_t< SrcMsgT >::ExecutionReportResponse
5.1: "TODO" of [1]: the response to an ExecutionReport is a various messages.
5.1: "TODO" of [1]: the response to an ExecutionReport is a various messages. Member
finite_fifo_test_types
Does not seem to be perf tested...?
Does not seem to be perf tested...? Namespace
isimud
Update when this is official. Member
isimud::ISIMUD_VER_NAMESPACE::exchanges::BATSBOE::common::convert< OrdType >
(FIX::common::field_str_const_range_t const &a)
What should be done with OrdType's that cannot be mapped?. Member
isimud::ISIMUD_VER_NAMESPACE::exchanges::BATSBOE::common::convert< SecurityID_t >
(FIX::common::field_str_const_range_t const &a)
We need to consider the symbology used, for example a conversion from ISIN to MIT native symbology. Member
isimud::ISIMUD_VER_NAMESPACE::exchanges::BATSBOE::common::convert< Side >
(FIX::common::field_str_const_range_t const &a)
What should be done with Side's that cannot be mapped?. Member
isimud::ISIMUD_VER_NAMESPACE::exchanges::BATSBOE::common::convert< TIF >
(FIX::common::field_str_const_range_t const &a)
What should be done with TIF's that cannot be mapped?. Namespace
isimud::ISIMUD_VER_NAMESPACE::exchanges::BATSBOE::US::v1
Namespace
isimud::ISIMUD_VER_NAMESPACE::exchanges::BATSBOE::US::v2
Class
isimud::ISIMUD_VER_NAMESPACE::exchanges::common::exchange_to_client_processor< ClientCxnPtr, EchgCxn >
_todo000114We need to write to the dest_skt found using the xdest in the msg in the unordered_tuple of exchange_to_client_processor passed as a template parameter & fn arg..Pass this up to the client_to_exchange_transformations & link_t..The client_to_exchange_transformations should contain the unordered_tuple of exchange_to_client_transformations (which contain the connections to the various exchanges). Member
isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::common::convert
(MIT::common::OrderStatus const &a) noexcept(false)
What should be done with OrderStatus's that cannot be mapped?. Member
isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::common::convert
(MIT::common::ExecType const &a) noexcept(false)
What should be done with ExecType's that cannot be mapped?. Member
isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::common::convert
(MIT::common::Side const &a)
What should be done with Side's that cannot be mapped?. Member
isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::v5_0sp2::private_::ID_type
Need to implement this properly.. Member
isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::v5_0sp2::private_::IDREF_type
Need to implement this properly.. Member
isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::v5_0sp2::private_::rfc_1766_language_code_type
Need to implement this properly.. Member
isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::common::convert< OrderType >
(FIX::common::field_str_const_range_t const &a)
What should be done with OrderType's that cannot be mapped?. Member
isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::common::convert< Side >
(FIX::common::field_str_const_range_t const &a)
What should be done with Side's that cannot be mapped?. Member
isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::common::convert< TIF >
(FIX::common::field_str_const_range_t const &a)
What should be done with TIF's that cannot be mapped?. Class
isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::common::exchange_to_client_transformations< SrcMsgDetails, DestMsgDetails >::business_state_machine_t::ExecutionReportResponse
5.1: "TODO" of [1]: the response to an ExecutionReport is a various messages. Namespace
isimud::ISIMUD_VER_NAMESPACE::exchanges::OUCH::NYSE::tests
Namespace
isimud::ISIMUD_VER_NAMESPACE::exchanges::OUCH::SWX::tests
Member
isimud::ISIMUD_VER_NAMESPACE::order_book< MsgType >::orders_by_time
Consider a faster collection, such as boost circular buffer for something similar. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::cache::basic_statistics::outstanding_fills
(void) const noexcept(true)
JMG need to compute this. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::cache::operator<<
(tostream &os, const ro< F_, P_, TT_, S_ > &r)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::cache::operator<<
(tostream &os, const basic_statistics &stats)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::crt_exception< API, Mdl >::operator<<
(tostream &o, const crt_exception &e) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::exception< API, Mdl >::operator<<
(tostream &o, const exception &e) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::factoring::monte_carlo
(const collection_type::value_type y) noexcept(false)
FIXME Member
jmmcg::LIBJMMCG_VER_NAMESPACE::heap::memory_buffer< OST, El >::operator<<
(tostream &os, memory_buffer const &t) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::info::function::argument::operator<<
(tostream &o, const argument &a) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::info::function::operator<<
(tostream &o, const function &fi) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::info::revision::operator<<
(tostream &o, const revision &ri) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::win_exception::operator<<
(tostream &o, const win_exception &e)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::api_threading_traits< API, Mdl >::gen_backtrace
() noexcept(true)
Reimplement with: Class
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::basic_statistics< Sz >
Add work completed/sec. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::basic_statistics< Sz >::operator<<
(tostream &os, basic_statistics const &p) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::basic_statistics< Sz >::process_work_type::operator<<
(tostream &os, process_work_type const &p) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Class
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::lock::any_order::all< API_, Mdl_, Lk1, Lk2 >
JMG: implement a specialisation for Win32 API using "WaitForMultipleObjects()". Class
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::lock::any_order::try_one< API_, Mdl_, Lk1, Lk2 >
JMG: implement a specialisation for Win32 API using "WaitForMultipleObjects()". Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::lock::rw::locker< T >::writer_atomic_t
G++ issues: private: Class
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::no_signalling< Lk >
I suppose I could use some kind of enable_if to detect if the container has a size() member-method, and only use this if it doesn't. That's a micro-optimisation to do. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::operator<<
(tostream &os, atomic_ctr< V, LkT > const &a)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Class
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool::private_::thread_types::slave< generic_traits::return_data::joinable, thread_os_traits< generic_traits::api_type::posix_pthreads, sequential_mode >, PTT >
JMG: Looks like this needs completing, as some fns are undefined! Maybe not used... Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_aspects< RD, API, Mdl, PM, Comp, GSSkSz, Stats, CFG >::thread_pool_queue_details
Colin Egan suggested that one could consider the asynchronous work transferred into this queue as a set of instructions. (The ISA being generated by the program being compiled, composed of the unique closure_base-derived closure types transferred.) One could then analyse these instructions as sets of basic-blocks, and apply analysis to those basic blocks for code-hoisting, consider trace-scheduling, etc, etc. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::private_::thread_pool_queue_details_back_batch_queue< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue, EvSts, CST, Stats, Cont, GSSk >::container_type
JMG: if the work-load has a user-supplied estimate of the time it would take to complete, then we could implement a more sophisticated and better algorithm, e.g. in [1]. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::private_::thread_pool_queue_details_back_batch_queue< pool_traits::work_distribution_mode_t::queue_model_t::thread_owns_queue< SM >, EvSts, CST, Stats, Cont, GSSk >::container_type
JMG: if the work-load has a user-supplied estimate of the time it would take to complete, then we could implement a more sophisticated and better algorithm, e.g. in [1]. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::pool_traits::private_::thread_pool_queue_details_front_batch_priority_queue< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue, EvSts, Stats, V, Comp, GSSk >::container_type
JMG: if the work-load has a user-supplied estimate of the time it would take to complete, then we could implement a more sophisticated and better algorithm, e.g. in [1]. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::batchers_bitonic_merge_reduce< Conts, Comp >::merge< LHSDir, RHSDir, FinalSort >::process
() const
JMG: this needs extending to non-even sized collections... Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::bitonic_sort_reduce< Conts, Comp >::sort< dir >::process
() const
JMG: this needs extending to non-even sized collections... Class
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::find_if_reduce< Conts, CtrPred >
It would be nice, if once found, this could cancel any pending tasks. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::merge_final_sorter< Iter, operation_type, LHSDir, RHSDir, Dummy >::process
(Dummy const &, out_iterator const begin, out_iterator const end, operation_type const &fn) noexcept(false) FORCE_INLINE
What about std::inplace_merge()? Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::cliques_t< joinable_t< TPB > >::push_back
(parallel_algorithm< Alg > &&wk) noexcept(false)
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::cliques_t< nonjoinable_t< TPB > >::push_back
(parallel_algorithm< Alg > &&wk) noexcept(false)
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::closure::closure_base< CFG >::response_time
() const noexcept(true) FORCE_INLINE
This is only an idea at the moment, and needs to be implemented with test cases. Obviously we'd need to be able to adjust this to ensure that all work gets eventually processed. It might make sense to provide this as a new pool_trait, that would automatically supply the correct operator<(). Have a look at the theories in "Parallel Algorithms" by H.Casanova. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::closure::closure_static< InpWk, Res, NoExcept,, CFG >::operator<<
(tostream &os, closure_static const &w) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::closure::closure_static_cfg< InpWk, Res, CFGP, NoExcept,, CFG >::operator<<
(tostream &os, closure_static_cfg const &w) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::closure::closure_static_cfg_const< InpWk, Res, CFGP, NoExcept,, CFG >::operator<<
(tostream &os, closure_static_cfg_const const &w) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::closure::closure_static_const< InpWk, Res, NoExcept,, CFG >::operator<<
(tostream &os, closure_static_const const &w) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::closure::closure_void_static< InpWk, NoExcept,, CFG >::operator<<
(tostream &os, closure_void_static const &w) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::closure::closure_void_static< InpWk, NoExcept,, CFG >::process
() FORCE_INLINE
We really want to compute the noexcept() from the Proc member fn. typedef typename std::remove_pointer<process_ptr_t>::type process_t; - This doesn't seem to remove the pointer. BOOST_MPL_ASSERT((std::is_same<process_t, int>)); Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::closure::closure_void_static_const< InpWk, NoExcept,, CFG >::operator<<
(tostream &os, closure_void_static_const const &w) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Class
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >
joinable types do not have to be allocated on the heap, because there is an execution_context available to hold these objects. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::closure::thread_wk_base< OST, CFG >::operator<<
(tostream &os, thread_wk_base const &wk) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::create_direct< P, InpWk, FnType, FnPtr >::process_fn_traits
It would be good to make use of the is_const member to determine if the mutation is pure. If so then all sorts of nice things could be done like memoization of the result of the mutation, i.e. place this object type into a hash_map at compile-time, and place the result into there too, and for later mutations of the same object instance to short-cut needing to do all the using a thread to generate the result malarky, as long as we save the object instance state sufficiently. Class
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::execution_context_algo_buff_stack_type< pool_traits::work_distribution_mode_t::one_thread_distributes<>, generic_traits::return_data::joinable, AlgCoreWk, GenWk, Wk, Deref, InitCoreWk >
Add an extra template parameter to supply modifiable functionality to operator*() & operator->(), with a no-op default. Then accumulate, count & find may use this class. Class
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::joinable_t< TPB >
Clearly the above is undesirable, and it would be better if we could somehow force the compiler to emit an error if the user fails to capture the result. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::joinable_t< TPB >::operator<<
(typename thread_pool_type::template priority< Pri >) noexcept(true)
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::joinable_t< TPB >::push_back
(InpWk &&wk) noexcept(false)
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Namespace
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::kernel_priority
The input process() had two arguments, including the cfg. This closure has only one argument to process... Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::nonjoinable_buff_t< TPB >::push_back
(InpWk &&wk) noexcept(false)
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::nonjoinable_t< TPB >::operator<<
(typename thread_pool_type::template priority< Pri >) noexcept(true)
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::nonjoinable_t< TPB >::push_back
(InpWk &&wk) noexcept(false)
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::operator<<
(tostream &os, thread_base< API, Mdl > const &th)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::priority_t< joinable_t, TPB, Pri >::push_back
(InpWk &&wk) noexcept(false)
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::priority_t< nonjoinable_t, TPB, Pri >::push_back
(InpWk &&wk) noexcept(false)
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::sequential_pool< DM, Ps, P >::operator<<
(nonjoinable &&nj) noexcept(true) FORCE_INLINE
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::sequential_pool< DM, Ps, P >::operator<<
(nonjoinable_buff &&njb) noexcept(true) FORCE_INLINE
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::sequential_pool< DM, Ps, P >::operator<<
(joinable_t< sequential_pool > &&j) noexcept(true) FORCE_INLINE
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::sequential_pool< DM, Ps, P >::operator<<
(tostream &os, sequential_pool const &t) FORCE_INLINE
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::subdivide_n_gen_wk< Ps, TPB, Alg >::compute_buffer_items
(typename thread_pool_type::pool_type::size_type const num_threads_per_clique) noexcept(true) FORCE_INLINE
This is an O(n) operation, and we might want a faster algorithm, it doesn't have to be perfect, as long as the result is >= the true value. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::thread_pool_base< DM, Ps, PTT, Pt >::binary_fun
(LHSArg &&lhs, RHSArg &&rhs, BinFn const &op=BinFn())
JMG: If there are no side-effects, one might implement compile-time reduction of boolean expressions implemented using logical_and() & logical_or(), see Kennedy & Allen, "Advanced Optimizing Compilers". Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::thread_pool_base< DM, Ps, PTT, Pt >::min_processors
(generic_traits::memory_access_modes mode) const noexcept(true)=0
It would be nice if there was some result for returning this with respect to the memory access models of the work within the queue (which may be a mix of CREW & EREW memory models) for the current thread_pool. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::thread_pool_base< DM, Ps, PTT, Pt >::min_time
(generic_traits::memory_access_modes mode) const noexcept(true)=0
It would be nice if there was some result for returning this with respect to the memory access models of the work within the queue (which may be a mix of CREW & EREW memory models) for the current thread_pool. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::thread_pool_base< DM, Ps, PTT, Pt >::operator<<
(nonjoinable &&nj) noexcept(true)
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::thread_pool_base< DM, Ps, PTT, Pt >::operator<<
(nonjoinable_buff &&njb) noexcept(true)
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::thread_pool_base< DM, Ps, PTT, Pt >::operator<<
(joinable_t< thread_pool_base > &&j) noexcept(true)
JMG: Hubert Matthews suggested that potentially expression templates could be used here to concatenate the thread_wk_t's that are transferred into the pool; also as an implementation of back_batching, i.e. GSS(k) scheduling. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::thread_pool_base< DM, Ps, PTT, Pt >::operator<<
(tostream &os, thread_pool_base< DM1, Ps1, PTT1, Pt1 > const &t)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::thread_pool_base< DM, Ps, PTT, Pt >::unary_fun
(ArgT &&a, UniFn const &op=UniFn())
JMG: If there are no side-effects, one might implement compile-time reduction of boolean expressions implemented using logical_and() & logical_or(), see Kennedy & Allen, "Advanced Optimizing Compilers". Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::thread_pool_queue_model< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::thread_owns_queue< SM > >, Ps, PTT, Pt >::min_processors
(generic_traits::memory_access_modes mode) const noexcept(true) FORCE_INLINE
It would be nice if there was some result for returning this with respect to the memory access models of the work within the queue (which may be a mix of CREW & EREW memory models) for the current thread_pool. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::thread_pool_queue_model< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::thread_owns_queue< SM > >, Ps, PTT, Pt >::min_time
(generic_traits::memory_access_modes mode) const noexcept(true) override FORCE_INLINE
It would be nice if there was some result for returning this with respect to the memory access models of the work within the queue (which may be a mix of CREW & EREW memory models) for the current thread_pool. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::thread_pool_queue_model< QM< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, Ps, PTT, Pt >::min_processors
(generic_traits::memory_access_modes mode) const noexcept(true) override FORCE_INLINE
It would be nice if there was some result for returning this with respect to the memory access models of the work within the queue (which may be a mix of CREW & EREW memory models) for the current thread_pool. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::thread_pool_queue_model< QM< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, Ps, PTT, Pt >::min_time
(generic_traits::memory_access_modes mode) const noexcept(true) override FORCE_INLINE
It would be nice if there was some result for returning this with respect to the memory access models of the work within the queue (which may be a mix of CREW & EREW memory models) for the current thread_pool. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::safe_colln< C, M, WL, Sig, MLk >::resize_noinit_nolk
(const size_type sz) noexcept(false) FORCE_INLINE
Ideally I want to have an "uninitialized resize()" (reserve() does not set the size), so that I can initialise the elements of the container in the order I wish, using a parallel fill_n() for example. Class
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::thread_os_traits< API, Mdl >::thread_exception
Make use of std::exception_ptr or similar to pass any thrown exception. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::thread_os_traits< API, Mdl >::thread_exception::operator<<
(tostream &os, thread_exception const &te) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::thread_params< generic_traits::api_type::posix_pthreads >::thread_params
(core_work_fn_type *const sa, const security_type=nullptr, const stack_size_type ss=max_stack_size) noexcept(false) FORCE_INLINE
Have a better way of setting the stack size, rather than magically, here. Class
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::thread_pool< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::tracks_to_max, PTT >
JMG: Need to complete this... Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::thread_pool< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::tracks_to_max, PTT >::~thread_pool
() noexcept(false) FORCE_INLINE
JMG: Need to complete this... What's the thread creation policy???? Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::thread_pool< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::tracks_to_max, PTT >::thread_pool
(thread_pool const &)=delete
JMG: Need to complete this... What's the thread creation policy???? Member
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::wrapper< API, Mdl, TWC >::exit_requested
Consider moving this event into the stack of process() as an automatic variable in there. This may be useful in implementing detached threads. Detached threads may be useful in improving performance of horizontal threading, because the work_complete() lock in them won't have to wait for non-dependent work to complete before it returns. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::shared_ptr< V, LkT >::operator<<
(tostream &os, shared_ptr const &ptr) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::socket::glibc::basic::wrapper< LkT >::set_options
(std::size_t min_message_size, std::size_t max_message_size, unsigned short timeout, socket_priority priority, std::size_t incoming_cpu) noexcept(false)
Consider setting MSG_ZEROCOPY. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::stack::memory_buffer< El, num_objs >::operator<<
(tostream &os, memory_buffer const &t) noexcept(false)
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::tostring
(double v, char *const buff, std::size_t sz) noexcept(true)
This is pretty slow. Write an optimised version for just decimal conversion. Member
jmmcg::LIBJMMCG_VER_NAMESPACE::unique_ptr< V, LkT >::operator<<
(tostream &os, unique_ptr const &ptr) noexcept(false) FORCE_INLINE
Implement using the advice given in "Standard C++ IOStreams and Locales" by A.Langer & K.Kreft, page 170. Class
jmmcg::ppd::pool::thread_types::slave< generic_traits::return_data::joinable, thread_os_traits< generic_traits::MS_Win32, sequential_mode >, WQ >
JMG: Looks like this needs completing, as some fns are undefined! Maybe not used... Member
JMMCG_SYSCALL_WRAPPER
(ErrMsg, RevInfo, Fn,...)
This define could be removed in C++20 with the use of std::source_location, does not work with g++ v9.2. Member
JMMCG_SYSCALL_WRAPPER_SWITCH
(CaseLabels, ErrMsg, RevInfo, Fn,...)
This define could be removed in C++20 with the use of std::source_location, does not work with g++ v9.2. Member
make_row
(std::string line) noexcept(false)
Consider using libjmmcg::csv_iterator
Consider using libjmmcg::csv_iterator Member
schedule_policy
This cannot be set unless CAP_SYS_RESOURCE is applied.
This cannot be set unless CAP_SYS_RESOURCE is applied.
Generated on Tue May 11 2021 17:32:00 for libjmmcg by
1.9.2