X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fmanager.c;h=e90757eacd76873a4e844cef11762463f19816aa;hb=0ddf1d3aa5e96b752ad62be48f99d7850a3d8542;hp=e4559ffcb85702bc949903059842d7fb70994131;hpb=47a483a1abe52be2d7c884743824bb3929ab65b6;p=elogind.git diff --git a/src/manager.c b/src/manager.c index e4559ffcb..e90757eac 100644 --- a/src/manager.c +++ b/src/manager.c @@ -216,7 +216,7 @@ int manager_new(ManagerRunningAs running_as, Manager **_m) { m->audit_fd = -1; #endif - m->signal_watch.fd = m->mount_watch.fd = m->udev_watch.fd = m->epoll_fd = m->dev_autofs_fd = -1; + m->signal_watch.fd = m->mount_watch.fd = m->udev_watch.fd = m->epoll_fd = m->dev_autofs_fd = m->swap_watch.fd = -1; m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ if (!(m->environment = strv_copy(environ))) @@ -2171,6 +2171,11 @@ static int process_event(Manager *m, struct epoll_event *ev) { mount_fd_event(m, ev->events); break; + case WATCH_SWAP: + /* Some swap table change, intended for the swap subsystem */ + swap_fd_event(m, ev->events); + break; + case WATCH_UDEV: /* Some notification from udev, intended for the device subsystem */ device_fd_event(m, ev->events); @@ -2485,15 +2490,17 @@ int manager_serialize(Manager *m, FILE *f, FDSet *fds) { assert(f); assert(fds); - fprintf(f, "startup-timestamp=%llu %llu\n\n", + fprintf(f, "startup-timestamp=%llu %llu\n", (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", + fprintf(f, "finish-timestamp=%llu %llu\n", (unsigned long long) m->finish_timestamp.realtime, (unsigned long long) m->finish_timestamp.monotonic); + fputc('\n', f); + HASHMAP_FOREACH_KEY(u, t, m->units, i) { if (u->meta.id != t) continue; @@ -2555,8 +2562,8 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) { } 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); + if (sscanf(l+17, "%lli %llu", &a, &b) != 2) + log_debug("Failed to parse finish timestamp value %s", l+17); else { m->finish_timestamp.realtime = a; m->finish_timestamp.monotonic = b;