From faf919f1ebebdfc13f769bb6585e64e7ad4b301b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sat, 17 Jul 2010 04:09:28 +0200 Subject: job: timeout every job independently of the unit --- src/manager.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/manager.c') diff --git a/src/manager.c b/src/manager.c index 58848356ea..7b2586fb0c 100644 --- a/src/manager.c +++ b/src/manager.c @@ -1124,6 +1124,7 @@ static int transaction_apply(Manager *m) { job_add_to_run_queue(j); job_add_to_dbus_queue(j); + job_start_timer(j); } /* As last step, kill all remaining job dependencies. */ @@ -2022,7 +2023,8 @@ static int process_event(Manager *m, struct epoll_event *ev) { UNIT_VTABLE(w->data.unit)->fd_event(w->data.unit, w->fd, ev->events, w); break; - case WATCH_TIMER: { + case WATCH_UNIT_TIMER: + case WATCH_JOB_TIMER: { uint64_t v; ssize_t k; @@ -2035,7 +2037,10 @@ static int process_event(Manager *m, struct epoll_event *ev) { return k < 0 ? -errno : -EIO; } - UNIT_VTABLE(w->data.unit)->timer_event(w->data.unit, v, w); + if (w->type == WATCH_UNIT_TIMER) + UNIT_VTABLE(w->data.unit)->timer_event(w->data.unit, v, w); + else + job_timer_event(w->data.job, v, w); break; } -- cgit v1.2.3-54-g00ecf