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