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/socket.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/socket.c')
-rw-r--r-- | src/core/socket.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/core/socket.c b/src/core/socket.c index 1f2a2c0aaf..7eac0eb66d 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -2344,6 +2344,20 @@ static int socket_kill(Unit *u, KillWho who, int signo, sd_bus_error *error) { return unit_kill_common(u, who, signo, -1, SOCKET(u)->control_pid, error); } +static int socket_get_timeout(Unit *u, uint64_t *timeout) { + Socket *s = SOCKET(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; +} + static const char* const socket_state_table[_SOCKET_STATE_MAX] = { [SOCKET_DEAD] = "dead", [SOCKET_START_PRE] = "start-pre", @@ -2408,6 +2422,8 @@ const UnitVTable socket_vtable = { .kill = socket_kill, + .get_timeout = socket_get_timeout, + .serialize = socket_serialize, .deserialize_item = socket_deserialize_item, .distribute_fds = socket_distribute_fds, |