hpx/schedulers/static_priority_queue_scheduler.hpp¶
See Public API for a list of names and headers that are part of the public HPX API.
-
namespace
hpx
-
namespace
threads
-
namespace
policies
Typedefs
-
using
default_static_priority_queue_scheduler_terminated_queue
= lockfree_fifo¶
-
template<typename
Mutex
= std::mutex, typenamePendingQueuing
= lockfree_fifo, typenameStagedQueuing
= lockfree_fifo, typenameTerminatedQueuing
= default_static_priority_queue_scheduler_terminated_queue>
classstatic_priority_queue_scheduler
: public hpx::threads::policies::local_priority_queue_scheduler<std::mutex, lockfree_fifo, lockfree_fifo, default_static_priority_queue_scheduler_terminated_queue>¶ - #include <static_priority_queue_scheduler.hpp>
The static_priority_queue_scheduler maintains exactly one queue of work items (threads) per OS thread, where this OS thread pulls its next work from. Additionally it maintains separate queues: several for high priority threads and one for low priority threads. High priority threads are executed by the first N OS threads before any other work is executed. Low priority threads are executed by the last OS thread whenever no other work is available. This scheduler does not do any work stealing.
Public Types
-
template<>
usingbase_type
= local_priority_queue_scheduler<Mutex, PendingQueuing, StagedQueuing, TerminatedQueuing>¶
Public Functions
-
static_priority_queue_scheduler
(init_parameter_type const &init, bool deferred_initialization = true)¶
-
void
set_scheduler_mode
(scheduler_mode mode)¶
-
template<>
-
using
-
namespace
-
namespace