blob: ca780829cb5279590ef39948a73b68a35d68537f [file] [log] [blame]
#include <systemd/sd-event.h>
#include <sdeventplus/event.hpp>
namespace utils
{
void runEventLoopForSeconds(sdeventplus::Event& event, uint64_t sec)
{
uint64_t t0 = 0;
uint64_t t1 = 0;
uint64_t usec = sec * 1000000;
uint64_t elapsed = 0;
sd_event_now(event.get(), CLOCK_MONOTONIC, &t0);
do
{
if (!sd_event_run(event.get(), usec - elapsed))
{
break;
}
sd_event_now(event.get(), CLOCK_MONOTONIC, &t1);
elapsed = t1 - t0;
} while (elapsed < usec);
}
} // namespace utils