diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-01-27 00:57:34 -0500 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-01-27 01:23:16 -0500 |
commit | 68db7a3bd9b2f8640c7297382b6d20eb995f7e1e (patch) | |
tree | 1f06859edce75e8fa58d42cc20f4a4b3444c5190 /src/core/service.c | |
parent | d7353ef6095f5e7db63d9cc898c7134b64482550 (diff) |
core: add function to tell when job will time out
Things will continue when either the job timeout
or the unit timeout is reached. Add functionality to
access that info.
Diffstat (limited to 'src/core/service.c')
-rw-r--r-- | src/core/service.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/core/service.c b/src/core/service.c index a2f0e3577b..d949f7a363 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -3401,6 +3401,20 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { unit_add_to_dbus_queue(u); } +static int service_get_timeout(Unit *u, uint64_t *timeout) { + Service *s = SERVICE(u); + int r; + + if (!s->timer_event_source) + return 0; + + r = sd_event_source_get_time(s->timer_event_source, timeout); + if (r < 0) + return r; + + return 1; +} + #ifdef HAVE_SYSV_COMPAT static int service_enumerate(Manager *m) { @@ -3832,6 +3846,8 @@ const UnitVTable service_vtable = { .bus_set_property = bus_service_set_property, .bus_commit_properties = bus_service_commit_properties, + .get_timeout = service_get_timeout, + #ifdef HAVE_SYSV_COMPAT .enumerate = service_enumerate, #endif |