From 33c5fae93976505df343b842727f93910ad510c6 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 29 Jun 2012 19:47:38 +0200 Subject: manager: serialize/deserialize job counters across reexec/reload --- TODO | 2 -- src/core/manager.c | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/TODO b/TODO index 4b7dad95ed..1a7b60e236 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 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; -- cgit v1.2.3-54-g00ecf