Chaul Ly | fdf61cc | 2025-01-22 07:55:45 +0000 | [diff] [blame] | 1 | #include <systemd/sd-event.h> |
| 2 | |
| 3 | #include <sdeventplus/event.hpp> |
| 4 | |
| 5 | namespace utils |
| 6 | { |
| 7 | void runEventLoopForSeconds(sdeventplus::Event& event, uint64_t sec) |
| 8 | { |
| 9 | uint64_t t0 = 0; |
| 10 | uint64_t t1 = 0; |
| 11 | uint64_t usec = sec * 1000000; |
| 12 | uint64_t elapsed = 0; |
| 13 | sd_event_now(event.get(), CLOCK_MONOTONIC, &t0); |
| 14 | do |
| 15 | { |
| 16 | if (!sd_event_run(event.get(), usec - elapsed)) |
| 17 | { |
| 18 | break; |
| 19 | } |
| 20 | sd_event_now(event.get(), CLOCK_MONOTONIC, &t1); |
| 21 | elapsed = t1 - t0; |
| 22 | } while (elapsed < usec); |
| 23 | } |
| 24 | } // namespace utils |