github
32079 of 80165 branches covered (40.02%)
Branch coverage included in aggregate %.
129 of 149 new or added lines in 11 files covered. (86.58%)
5116 existing lines in 181 files now uncovered.32739 of 46790 relevant lines covered (69.97%)
9929.31 hits per line
| 1 |
#include <dftracer/utils/core/io/io_completion_thread.h> |
|
| 2 |
|
|
| 3 |
namespace dftracer::utils::io {
|
|
| 4 |
|
|
| 5 |
IoCompletionThread::~IoCompletionThread() {
|
1,054✔ |
| 6 |
if (running_.load(std::memory_order_relaxed)) {
|
|
| 7 |
stop(); |
|
|
UNCOV
8
|
} |
× |
| 9 |
} |
1,054✔ |
| 10 |
|
|
| 11 |
void IoCompletionThread::start(std::function<void()> poll_fn) { |
527✔ |
| 12 |
poll_fn_ = std::move(poll_fn); |
527✔ |
| 13 |
running_.store(true, std::memory_order_release);
|
527✔ |
| 14 |
thread_ = std::thread([this] {
|
1,054✔ |
| 15 |
while (running_.load(std::memory_order_acquire)) {
|
|
| 16 |
poll_fn_(); |
527✔ |
| 17 |
} |
|
| 18 |
}); |
527✔ |
| 19 |
} |
527✔ |
| 20 |
|
|
| 21 |
void IoCompletionThread::signal_stop() {
|
527✔ |
| 22 |
running_.store(false, std::memory_order_release);
|
527✔ |
| 23 |
} |
527✔ |
| 24 |
|
|
| 25 |
void IoCompletionThread::join() {
|
527✔ |
| 26 |
if (thread_.joinable()) {
|
|
| 27 |
thread_.join(); |
527✔ |
| 28 |
} |
527✔ |
| 29 |
} |
527✔ |
| 30 |
|
|
| 31 |
void IoCompletionThread::stop() {
|
× |
| 32 |
signal_stop(); |
× |
| 33 |
join(); |
× |
| 34 |
} |
× |
| 35 |
|
|
| 36 |
} // namespace dftracer::utils::io
|