github
31872 of 80367 branches covered (39.66%)
Branch coverage included in aggregate %.
770 of 1591 new or added lines in 85 files covered. (48.4%)
5070 existing lines in 182 files now uncovered.32742 of 47009 relevant lines covered (69.65%)
9887.52 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
|