CCF
Loading...
Searching...
No Matches
worker.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
5#include "tasks/job_board.h"
6
7#include <atomic>
8#include <chrono>
9
10namespace ccf::tasks
11{
12 inline void task_worker_loop(
13 JobBoard& job_board, std::atomic<bool>& stop_signal)
14 {
15 static constexpr auto wait_time = std::chrono::milliseconds(100);
16
17 while (!stop_signal.load())
18 {
19 auto task = job_board.wait_for_task(wait_time);
20 if (task != nullptr)
21 {
22 if (!task->is_cancelled())
23 {
24 task->do_task();
25 }
26 }
27 }
28 }
29}
Definition job_board.h:15
Task wait_for_task(const std::chrono::milliseconds &timeout)
Definition job_board.cpp:239
Definition basic_task.h:8
void task_worker_loop(JobBoard &job_board, std::atomic< bool > &stop_signal)
Definition worker.h:12