mirror of
https://github.com/Zygo/bees.git
synced 2025-05-17 13:25:45 +02:00
status: report number of active worker threads in status output
This is especially useful when dynamic load management allocates more worker threads than active tasks, so the extra threads are effectively invisible. Signed-off-by: Zygo Blaxell <bees@furryterror.org>
This commit is contained in:
parent
7548d865a0
commit
978c577412
@ -88,6 +88,9 @@ namespace crucible {
|
||||
/// Gets the current number of queued Tasks
|
||||
static size_t get_queue_count();
|
||||
|
||||
/// Gets the current number of active workers
|
||||
static size_t get_thread_count();
|
||||
|
||||
/// Drop the current queue and discard new Tasks without
|
||||
/// running them. Currently executing tasks are not
|
||||
/// affected (use set_thread_count(0) to wait for those
|
||||
|
@ -128,6 +128,7 @@ namespace crucible {
|
||||
static void push_back(shared_ptr<TaskState> task);
|
||||
static void push_front(shared_ptr<TaskState> task);
|
||||
size_t get_queue_count();
|
||||
size_t get_thread_count();
|
||||
};
|
||||
|
||||
class TaskConsumer : public enable_shared_from_this<TaskConsumer> {
|
||||
@ -324,6 +325,13 @@ namespace crucible {
|
||||
return s_tms->m_queue.size();
|
||||
}
|
||||
|
||||
size_t
|
||||
TaskMaster::get_thread_count()
|
||||
{
|
||||
unique_lock<mutex> lock(s_tms->m_mutex);
|
||||
return s_tms->m_threads.size();
|
||||
}
|
||||
|
||||
ostream &
|
||||
TaskMaster::print_queue(ostream &os)
|
||||
{
|
||||
|
@ -99,7 +99,7 @@ BeesContext::dump_status()
|
||||
ofs << "RATES:\n";
|
||||
ofs << "\t" << avg_rates << "\n";
|
||||
|
||||
ofs << "THREADS (work queue " << TaskMaster::get_queue_count() << " tasks):\n";
|
||||
ofs << "THREADS (work queue " << TaskMaster::get_queue_count() << " tasks, " << TaskMaster::get_thread_count() << " workers):\n";
|
||||
for (auto t : BeesNote::get_status()) {
|
||||
ofs << "\ttid " << t.first << ": " << t.second << "\n";
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user