chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
analyze: show generators on plot
[elogind.git]
/
src
/
core
/
manager.c
diff --git
a/src/core/manager.c
b/src/core/manager.c
index 1ee6a8ed53946a752125e2f318ff0a686312f19a..73f4c102e8583ffb9a4ddb01cce6a1a24d974138 100644
(file)
--- a/
src/core/manager.c
+++ b/
src/core/manager.c
@@
-440,13
+440,10
@@
int manager_new(SystemdRunningAs running_as, Manager **_m) {
if (!m)
return -ENOMEM;
if (!m)
return -ENOMEM;
- dual_timestamp_get(&m->userspace_timestamp);
- if (detect_container(NULL) <= 0) {
- dual_timestamp_from_monotonic(&m->kernel_timestamp, 0);
#ifdef ENABLE_EFI
#ifdef ENABLE_EFI
+ if (detect_container(NULL) <= 0)
efi_get_boot_timestamps(&m->userspace_timestamp, &m->firmware_timestamp, &m->loader_timestamp);
#endif
efi_get_boot_timestamps(&m->userspace_timestamp, &m->firmware_timestamp, &m->loader_timestamp);
#endif
- }
m->running_as = running_as;
m->name_data_slot = m->conn_data_slot = m->subscribed_data_slot = -1;
m->running_as = running_as;
m->name_data_slot = m->conn_data_slot = m->subscribed_data_slot = -1;
@@
-768,7
+765,7
@@
int manager_coldplug(Manager *m) {
static void manager_build_unit_path_cache(Manager *m) {
char **i;
static void manager_build_unit_path_cache(Manager *m) {
char **i;
-
DIR _cleanup_free_
*d = NULL;
+
_cleanup_free_ DIR
*d = NULL;
int r;
assert(m);
int r;
assert(m);
@@
-806,11
+803,9
@@
static void manager_build_unit_path_cache(Manager *m) {
goto fail;
}
goto fail;
}
- r = set_put(m->unit_path_cache, p);
- if (r < 0) {
- free(p);
+ r = set_consume(m->unit_path_cache, p);
+ if (r < 0)
goto fail;
goto fail;
- }
}
closedir(d);
}
closedir(d);
@@
-831,7
+826,9
@@
int manager_startup(Manager *m, FILE *serialization, FDSet *fds) {
assert(m);
assert(m);
+ dual_timestamp_get(&m->generators_start_timestamp);
manager_run_generators(m);
manager_run_generators(m);
+ dual_timestamp_get(&m->generators_finish_timestamp);
r = lookup_paths_init(
&m->lookup_paths, m->running_as, true,
r = lookup_paths_init(
&m->lookup_paths, m->running_as, true,
@@
-1042,7
+1039,8
@@
int manager_load_unit_prepare(Manager *m, const char *name, const char *path, DB
}
}
}
}
- if ((r = unit_add_name(ret, name)) < 0) {
+ r = unit_add_name(ret, name);
+ if (r < 0) {
unit_free(ret);
return r;
}
unit_free(ret);
return r;
}
@@
-1191,7
+1189,7
@@
static int manager_process_notify_fd(Manager *m) {
};
struct ucred *ucred;
Unit *u;
};
struct ucred *ucred;
Unit *u;
-
char _cleanup_strv_free_
**tags = NULL;
+
_cleanup_strv_free_ char
**tags = NULL;
n = recvmsg(m->notify_watch.fd, &msghdr, MSG_DONTWAIT);
if (n <= 0) {
n = recvmsg(m->notify_watch.fd, &msghdr, MSG_DONTWAIT);
if (n <= 0) {
@@
-1264,7
+1262,7
@@
static int manager_dispatch_sigchld(Manager *m) {
break;
if (si.si_code == CLD_EXITED || si.si_code == CLD_KILLED || si.si_code == CLD_DUMPED) {
break;
if (si.si_code == CLD_EXITED || si.si_code == CLD_KILLED || si.si_code == CLD_DUMPED) {
-
char _cleanup_free_
*name = NULL;
+
_cleanup_free_ char
*name = NULL;
get_process_comm(si.si_pid, &name);
log_debug("Got SIGCHLD for process %lu (%s)", (unsigned long) si.si_pid, strna(name));
get_process_comm(si.si_pid, &name);
log_debug("Got SIGCHLD for process %lu (%s)", (unsigned long) si.si_pid, strna(name));
@@
-1383,7
+1381,7
@@
static int manager_process_signal_fd(Manager *m) {
case SIGINT:
if (m->running_as == SYSTEMD_SYSTEM) {
case SIGINT:
if (m->running_as == SYSTEMD_SYSTEM) {
- manager_start_target(m, SPECIAL_CTRL_ALT_DEL_TARGET, JOB_REPLACE);
+ manager_start_target(m, SPECIAL_CTRL_ALT_DEL_TARGET, JOB_REPLACE
_IRREVERSIBLY
);
break;
}
break;
}
@@
-2339,7
+2337,7
@@
void manager_reset_failed(Manager *m) {
unit_reset_failed(u);
}
unit_reset_failed(u);
}
-bool manager_unit_
pending_inactive
(Manager *m, const char *name) {
+bool manager_unit_
inactive_or_pending
(Manager *m, const char *name) {
Unit *u;
assert(m);
Unit *u;
assert(m);
@@
-2350,7
+2348,7
@@
bool manager_unit_pending_inactive(Manager *m, const char *name) {
if (!u)
return true;
if (!u)
return true;
- return unit_
pending_inactive
(u);
+ return unit_
inactive_or_pending
(u);
}
void manager_check_finished(Manager *m) {
}
void manager_check_finished(Manager *m) {