From 47a483a1abe52be2d7c884743824bb3929ab65b6 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 18 Oct 2010 22:39:06 +0200 Subject: [PATCH] manager: serialize/deserialize finish timestamp --- src/manager.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/manager.c b/src/manager.c index f2ec2b72a..e4559ffcb 100644 --- a/src/manager.c +++ b/src/manager.c @@ -2489,6 +2489,11 @@ int manager_serialize(Manager *m, FILE *f, FDSet *fds) { (unsigned long long) m->startup_timestamp.realtime, (unsigned long long) m->startup_timestamp.monotonic); + if (dual_timestamp_is_set(&m->finish_timestamp)) + fprintf(f, "finish-timestamp=%llu %llu\n\n", + (unsigned long long) m->finish_timestamp.realtime, + (unsigned long long) m->finish_timestamp.monotonic); + HASHMAP_FOREACH_KEY(u, t, m->units, i) { if (u->meta.id != t) continue; @@ -2547,6 +2552,15 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) { m->startup_timestamp.realtime = a; m->startup_timestamp.monotonic = b; } + } else if (startswith(l, "finish-timestamp=")) { + unsigned long long a, b; + + if (sscanf(l+18, "%lli %llu", &a, &b) != 2) + log_debug("Failed to parse finish timestamp value %s", l+18); + else { + m->finish_timestamp.realtime = a; + m->finish_timestamp.monotonic = b; + } } else log_debug("Unknown serialization item '%s'", l); }