This source file includes following definitions.
- erase
1 #ifndef libjmmcg_core_thread_pool_sequential_hpp
2 # define libjmmcg_core_thread_pool_sequential_hpp
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include "private_/thread_pool.hpp"
24
25 namespace jmmcg {
26
27
28
29
30
31 namespace ppd {
32
33
34
35
36
37
38
39 template<
40 class P
41 >
42 class thread_pool<pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, P>
43 : public private_::sequential_pool<pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, P> {
44 public:
45 typedef private_::sequential_pool<pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, P> base_t;
46 typedef typename base_t::api_params_type api_params_type;
47 };
48
49
50
51
52
53
54
55 template<
56 class P
57 >
58 class 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::sequential, P>
59 : public private_::sequential_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::sequential, P> {
60 public:
61 typedef private_::sequential_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::sequential, P> base_t;
62 typedef typename base_t::os_traits os_traits;
63 typedef typename base_t::api_params_type api_params_type;
64 typedef typename base_t::pool_type pool_type;
65 typedef typename base_t::pool_size_type pool_size_type;
66
67 enum class erase_states {
68 failed_to_erase,
69 ignoring_result,
70 erased_successfully
71 };
72
73 constexpr __stdcall thread_pool() FORCE_INLINE
74 : base_t() {
75 }
76 explicit __stdcall thread_pool(const pool_size_type sz) FORCE_INLINE
77 : base_t(sz) {
78 }
79
80 template<typename ExecT>
81 static constexpr erase_states __fastcall FORCE_INLINE
82 erase(ExecT &) {
83 return erase_states::failed_to_erase;
84 }
85 };
86
87 } }
88
89 #endif