diff --git a/src/misc/task_executor.cpp b/src/misc/task_executor.cpp index 9a09fb1..59bf3a1 100644 --- a/src/misc/task_executor.cpp +++ b/src/misc/task_executor.cpp @@ -513,4 +513,30 @@ void task_executor::executor(std::shared_ptr executor_context) task_context->notify.wait(task_lock); } } +} + +void task_executor::print_statistics(const std::function& println, bool print_task_list) { + println("Executor count: " + std::to_string(this->executors.size())); + std::lock_guard task_lock{this->task_context->mutex}; + if(print_task_list) { + println("Tasks (" + std::to_string(this->task_context->task_count) + "):"); + { + auto head = this->task_context->task_head; + while(head) { + println(" - " + head->name); + head = head->next; + } + } + println("Recurring task count (" + std::to_string(this->task_context->task_recurring_count) + "):"); + { + auto head = this->task_context->task_recurring_head; + while(head) { + println(" - " + head->name); + head = head->next; + } + } + } else { + println("Task count: " + std::to_string(this->task_context->task_count)); + println("Recurring task count: " + std::to_string(this->task_context->task_recurring_count)); + } } \ No newline at end of file diff --git a/src/misc/task_executor.h b/src/misc/task_executor.h index 20ea7b8..cef41ae 100644 --- a/src/misc/task_executor.h +++ b/src/misc/task_executor.h @@ -51,6 +51,8 @@ namespace ts { std::string /* name */, std::chrono::nanoseconds /* interval */, std::function /* callback */); + + void print_statistics(const std::function& /* print function */, bool /* print task list */); private: struct task; struct task_recurring;