chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dbus: make more cgroup attributes runtime settable
[elogind.git]
/
src
/
core
/
job.c
diff --git
a/src/core/job.c
b/src/core/job.c
index d5b7987a00734c62b8465efd993481c3342684a6..d304a16d0651e0c652363c7a9d99bcf0101c7709 100644
(file)
--- a/
src/core/job.c
+++ b/
src/core/job.c
@@
-569,7
+569,7
@@
int job_run_and_invalidate(Job *j) {
return r;
}
return r;
}
-static const char *job_get_status_message_format(Unit *u, JobType t, JobResult result) {
+
_pure_
static const char *job_get_status_message_format(Unit *u, JobType t, JobResult result) {
const UnitStatusMessageFormats *format_table;
assert(u);
const UnitStatusMessageFormats *format_table;
assert(u);
@@
-588,7
+588,7
@@
static const char *job_get_status_message_format(Unit *u, JobType t, JobResult r
return NULL;
}
return NULL;
}
-static const char *job_get_status_message_format_try_harder(Unit *u, JobType t, JobResult result) {
+
_pure_
static const char *job_get_status_message_format_try_harder(Unit *u, JobType t, JobResult result) {
const char *format;
assert(u);
const char *format;
assert(u);
@@
-840,9
+840,11
@@
int job_finish_and_invalidate(Job *j, JobResult result, bool recursive) {
job_result_to_string(result),
NULL);
job_result_to_string(result),
NULL);
- unit_
trigger
_on_failure(u);
+ unit_
start
_on_failure(u);
}
}
+ unit_trigger_notify(u);
+
finish:
/* Try to start the next jobs that can be started */
SET_FOREACH(other, u->dependencies[UNIT_AFTER], i)
finish:
/* Try to start the next jobs that can be started */
SET_FOREACH(other, u->dependencies[UNIT_AFTER], i)
@@
-858,10
+860,12
@@
finish:
}
int job_start_timer(Job *j) {
}
int job_start_timer(Job *j) {
- struct itimerspec its;
- struct epoll_event ev;
+ struct itimerspec its = {};
+ struct epoll_event ev = {
+ .data.ptr = &j->timer_watch,
+ .events = EPOLLIN,
+ };
int fd, r;
int fd, r;
- assert(j);
if (j->unit->job_timeout <= 0 ||
j->timer_watch.type == WATCH_JOB_TIMER)
if (j->unit->job_timeout <= 0 ||
j->timer_watch.type == WATCH_JOB_TIMER)
@@
-874,7
+878,6
@@
int job_start_timer(Job *j) {
goto fail;
}
goto fail;
}
- zero(its);
timespec_store(&its.it_value, j->unit->job_timeout);
if (timerfd_settime(fd, 0, &its, NULL) < 0) {
timespec_store(&its.it_value, j->unit->job_timeout);
if (timerfd_settime(fd, 0, &its, NULL) < 0) {
@@
-882,10
+885,6
@@
int job_start_timer(Job *j) {
goto fail;
}
goto fail;
}
- zero(ev);
- ev.data.ptr = &j->timer_watch;
- ev.events = EPOLLIN;
-
if (epoll_ctl(j->manager->epoll_fd, EPOLL_CTL_ADD, fd, &ev) < 0) {
r = -errno;
goto fail;
if (epoll_ctl(j->manager->epoll_fd, EPOLL_CTL_ADD, fd, &ev) < 0) {
r = -errno;
goto fail;
@@
-1064,15
+1063,14
@@
int job_deserialize(Job *j, FILE *f, FDSet *fds) {
}
int job_coldplug(Job *j) {
}
int job_coldplug(Job *j) {
- struct epoll_event ev;
+ struct epoll_event ev = {
+ .data.ptr = &j->timer_watch,
+ .events = EPOLLIN,
+ };
if (j->timer_watch.type != WATCH_JOB_TIMER)
return 0;
if (j->timer_watch.type != WATCH_JOB_TIMER)
return 0;
- zero(ev);
- ev.data.ptr = &j->timer_watch;
- ev.events = EPOLLIN;
-
if (epoll_ctl(j->manager->epoll_fd, EPOLL_CTL_ADD, j->timer_watch.fd, &ev) < 0)
return -errno;
if (epoll_ctl(j->manager->epoll_fd, EPOLL_CTL_ADD, j->timer_watch.fd, &ev) < 0)
return -errno;