From: Lennart Poettering Date: Fri, 29 Jun 2012 17:47:38 +0000 (+0200) Subject: manager: serialize/deserialize job counters across reexec/reload X-Git-Tag: v186~30 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=33c5fae93976505df343b842727f93910ad510c6 manager: serialize/deserialize job counters across reexec/reload --- diff --git a/TODO b/TODO index 4b7dad95e..1a7b60e23 100644 --- a/TODO +++ b/TODO @@ -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 9dfcb98de..c0cc1b3f3 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;