blob: ca780829cb5279590ef39948a73b68a35d68537f [file] [log] [blame]
Chaul Lyfdf61cc2025-01-22 07:55:45 +00001#include <systemd/sd-event.h>
2
3#include <sdeventplus/event.hpp>
4
5namespace utils
6{
7void 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