1 //  Copyright (c) 2017 Shoshana Jakobovits
2 //
3 //  Distributed under the Boost Software License, Version 1.0. (See accompanying
4 //  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 #include <hpx/runtime/threads/detail/scheduled_thread_pool.hpp>
7 #include <hpx/runtime/threads/detail/scheduled_thread_pool_impl.hpp>
8 
9 ///////////////////////////////////////////////////////////////////////////////
10 /// explicit template instantiation for the thread pools of our choice
11 #if defined(HPX_HAVE_LOCAL_SCHEDULER)
12 #include <hpx/runtime/threads/policies/local_queue_scheduler.hpp>
13 template class HPX_EXPORT hpx::threads::policies::local_queue_scheduler<>;
14 template class HPX_EXPORT hpx::threads::detail::scheduled_thread_pool<
15     hpx::threads::policies::local_queue_scheduler<>>;
16 #endif
17 
18 #if defined(HPX_HAVE_STATIC_SCHEDULER)
19 #include <hpx/runtime/threads/policies/static_queue_scheduler.hpp>
20 template class HPX_EXPORT hpx::threads::policies::static_queue_scheduler<>;
21 template class HPX_EXPORT hpx::threads::detail::scheduled_thread_pool<
22     hpx::threads::policies::static_queue_scheduler<>>;
23 #endif
24 
25 #if defined(HPX_HAVE_STATIC_PRIORITY_SCHEDULER)
26 #include <hpx/runtime/threads/policies/static_priority_queue_scheduler.hpp>
27 template class HPX_EXPORT hpx::threads::policies::static_priority_queue_scheduler<>;
28 template class HPX_EXPORT hpx::threads::detail::scheduled_thread_pool<
29     hpx::threads::policies::static_priority_queue_scheduler<>>;
30 #endif
31 
32 #include <hpx/runtime/threads/policies/local_priority_queue_scheduler.hpp>
33 template class HPX_EXPORT hpx::threads::policies::local_priority_queue_scheduler<
34     hpx::compat::mutex, hpx::threads::policies::lockfree_fifo>;
35 template class HPX_EXPORT hpx::threads::detail::scheduled_thread_pool<
36     hpx::threads::policies::local_priority_queue_scheduler<hpx::compat::mutex,
37         hpx::threads::policies::lockfree_fifo>>;
38 template class HPX_EXPORT hpx::threads::policies::local_priority_queue_scheduler<
39     hpx::compat::mutex, hpx::threads::policies::lockfree_lifo>;
40 template class HPX_EXPORT hpx::threads::detail::scheduled_thread_pool<
41     hpx::threads::policies::local_priority_queue_scheduler<hpx::compat::mutex,
42         hpx::threads::policies::lockfree_lifo>>;
43 
44 #if defined(HPX_HAVE_ABP_SCHEDULER)
45 template class HPX_EXPORT hpx::threads::policies::local_priority_queue_scheduler<
46     hpx::compat::mutex, hpx::threads::policies::lockfree_abp_fifo>;
47 template class HPX_EXPORT hpx::threads::detail::scheduled_thread_pool<
48     hpx::threads::policies::local_priority_queue_scheduler<hpx::compat::mutex,
49         hpx::threads::policies::lockfree_abp_fifo>>;
50 template class HPX_EXPORT hpx::threads::policies::local_priority_queue_scheduler<
51     hpx::compat::mutex, hpx::threads::policies::lockfree_abp_lifo>;
52 template class HPX_EXPORT hpx::threads::detail::scheduled_thread_pool<
53     hpx::threads::policies::local_priority_queue_scheduler<hpx::compat::mutex,
54         hpx::threads::policies::lockfree_abp_lifo>>;
55 #endif
56 
57 #if defined(HPX_HAVE_SHARED_PRIORITY_SCHEDULER)
58 #include <hpx/runtime/threads/policies/static_priority_queue_scheduler.hpp>
59 template class HPX_EXPORT hpx::threads::policies::shared_priority_queue_scheduler<>;
60 template class HPX_EXPORT hpx::threads::detail::scheduled_thread_pool<
61     hpx::threads::policies::shared_priority_queue_scheduler<>>;
62 #endif
63