diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-04-04 18:31:22 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-04-04 18:31:22 +0200 |
commit | 667c24a6a86a5a26a906b7477ae81dcf4c73e64e (patch) | |
tree | 2a47196022087dbf16331ef89609084b705f3848 /src/login/test-login.c | |
parent | 60491a28698205d34a071f5e1a66f5a4e3621445 (diff) |
login: add sd_login_monitor_get_timeout() public api call
We don't need this right now, but we should keep our options open, in
case we need more than just an fd for waking up.
Diffstat (limited to 'src/login/test-login.c')
-rw-r--r-- | src/login/test-login.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/login/test-login.c b/src/login/test-login.c index f639129636..e4d0c93378 100644 --- a/src/login/test-login.c +++ b/src/login/test-login.c @@ -183,12 +183,23 @@ int main(int argc, char* argv[]) { r = sd_login_monitor_new("session", &m); assert_se(r >= 0); - zero(pollfd); - pollfd.fd = sd_login_monitor_get_fd(m); - pollfd.events = sd_login_monitor_get_events(m); for (n = 0; n < 5; n++) { - r = poll(&pollfd, 1, -1); + usec_t timeout, nw; + + zero(pollfd); + assert_se((pollfd.fd = sd_login_monitor_get_fd(m)) >= 0); + assert_se((pollfd.events = sd_login_monitor_get_events(m)) >= 0); + + assert_se(sd_login_monitor_get_timeout(m, &timeout) >= 0); + + nw = now(CLOCK_MONOTONIC); + + r = poll(&pollfd, 1, + timeout == (uint64_t) -1 ? -1 : + timeout > nw ? (int) ((timeout - nw) / 1000) : + 0); + assert_se(r >= 0); sd_login_monitor_flush(m); |