diff options
author | Lennart Poettering <lennart@poettering.net> | 2012-06-29 19:47:38 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2012-06-29 19:47:38 +0200 |
commit | 33c5fae93976505df343b842727f93910ad510c6 (patch) | |
tree | b53a32780d98889fad3b156d49d5ceb91b1d0013 | |
parent | 5e4a79da3ac3859c2a1295e019b95a1e5589b9c1 (diff) |
manager: serialize/deserialize job counters across reexec/reload
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | src/core/manager.c | 16 |
2 files changed, 16 insertions, 2 deletions
@@ -29,8 +29,6 @@ Features: * document that journal data is primarily ASCII, UTF-8 where necessary and binary only where nothing else makes sense. -* on reload/reexec: serialize NInstalledJobs properly - * Document: - PID 1 D-Bus API - Update Syslog Interface docs diff --git a/src/core/manager.c b/src/core/manager.c index 9dfcb98de9..c0cc1b3f37 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -1745,6 +1745,8 @@ int manager_serialize(Manager *m, FILE *f, FDSet *fds) { fprintf(f, "current-job-id=%i\n", m->current_job_id); fprintf(f, "taint-usr=%s\n", yes_no(m->taint_usr)); + fprintf(f, "n-installed-jobs=%u\n", m->n_installed_jobs); + fprintf(f, "n-failed-jobs=%u\n", m->n_failed_jobs); dual_timestamp_serialize(f, "initrd-timestamp", &m->initrd_timestamp); @@ -1820,6 +1822,20 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) { log_debug("Failed to parse current job id value %s", l+15); else m->current_job_id = MAX(m->current_job_id, id); + } else if (startswith(l, "n-installed-jobs=")) { + uint32_t n; + + if (safe_atou32(l+17, &n) < 0) + log_debug("Failed to parse installed jobs counter %s", l+17); + else + m->n_installed_jobs += n; + } else if (startswith(l, "n-failed-jobs=")) { + uint32_t n; + + if (safe_atou32(l+14, &n) < 0) + log_debug("Failed to parse failed jobs counter %s", l+14); + else + m->n_failed_jobs += n; } else if (startswith(l, "taint-usr=")) { int b; |