hpx/schedulers/static_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_queue_scheduler_terminated_queue
= lockfree_fifo¶
-
template<typename
Mutex
= std::mutex, typenamePendingQueuing
= lockfree_fifo, typenameStagedQueuing
= lockfree_fifo, typenameTerminatedQueuing
= default_static_queue_scheduler_terminated_queue>
classstatic_queue_scheduler
: public hpx::threads::policies::local_queue_scheduler<std::mutex, lockfree_fifo, lockfree_fifo, default_static_queue_scheduler_terminated_queue>¶ - #include <static_queue_scheduler.hpp>
The local_queue_scheduler maintains exactly one queue of work items (threads) per OS thread, where this OS thread pulls its next work from.
Public Types
-
typedef local_queue_scheduler<Mutex, PendingQueuing, StagedQueuing, TerminatedQueuing>
base_type
¶
Public Functions
-
static_queue_scheduler
(typename base_type::init_parameter_type const &init, bool deferred_initialization = true)¶
-
void
set_scheduler_mode
(scheduler_mode mode)¶
-
bool
get_next_thread
(std::size_t num_thread, bool, threads::thread_id_ref_type &thrd, bool)¶ Return the next thread to be executed, return false if none is available
-
bool
wait_or_add_new
(std::size_t num_thread, bool running, std::int64_t &idle_loop_count, bool, std::size_t &added)¶ This is a function which gets called periodically by the thread manager to allow for maintenance tasks to be executed in the scheduler. Returns true if the OS thread calling this function has to be terminated (i.e. no more work has to be done).
-
typedef local_queue_scheduler<Mutex, PendingQueuing, StagedQueuing, TerminatedQueuing>
-
using
-
namespace
-
namespace