summaryrefslogtreecommitdiff
path: root/src/login/test-login.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-04-04 18:31:22 +0200
committerLennart Poettering <lennart@poettering.net>2013-04-04 18:31:22 +0200
commit667c24a6a86a5a26a906b7477ae81dcf4c73e64e (patch)
tree2a47196022087dbf16331ef89609084b705f3848 /src/login/test-login.c
parent60491a28698205d34a071f5e1a66f5a4e3621445 (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.c19
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);