mirror of
https://github.com/systemd/systemd.git
synced 2024-12-18 22:53:40 +08:00
1027e0dc4d
Our examples should compile...
26 lines
580 B
C
26 lines
580 B
C
#include <poll.h>
|
|
#include <time.h>
|
|
#include <systemd/sd-journal.h>
|
|
|
|
int wait_for_changes(sd_journal *j) {
|
|
uint64_t t;
|
|
int msec;
|
|
struct pollfd pollfd;
|
|
|
|
sd_journal_get_timeout(j, &t);
|
|
if (t == (uint64_t) -1)
|
|
msec = -1;
|
|
else {
|
|
struct timespec ts;
|
|
uint64_t n;
|
|
clock_gettime(CLOCK_MONOTONIC, &ts);
|
|
n = (uint64_t) ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
|
|
msec = t > n ? (int) ((t - n + 999) / 1000) : 0;
|
|
}
|
|
|
|
pollfd.fd = sd_journal_get_fd(j);
|
|
pollfd.events = sd_journal_get_events(j);
|
|
poll(&pollfd, 1, msec);
|
|
return sd_journal_process(j);
|
|
}
|