diff options
author | Lennart Poettering <lennart@poettering.net> | 2016-04-29 19:14:52 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2016-05-02 11:15:30 +0200 |
commit | 5659958529d16f082a24d0c5b68699570b3eace3 (patch) | |
tree | 087d89d87288487942caf8e4d29c9aedc1f1e8e3 /src/machine/machined.h | |
parent | 26ccc1d0875b0e0c4306b03a52aff712c23d46c7 (diff) |
machined: run clone operation asynchronously in the background
Cloning an image can be slow, if the image is not on a btrfs subvolume, hence
let's make sure we do this asynchronously in a child process, so that machined
isn't blocked as long as we process the client request.
This adds a new, generic "Operation" object to machined, that is used to track
these kind of background processes.
This is inspired by the MachineOperation object that already exists to make
copy operations asynchronous. A later patch will rework the MachineOperation
logic to use the generic Operation instead.
Diffstat (limited to 'src/machine/machined.h')
-rw-r--r-- | src/machine/machined.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/machine/machined.h b/src/machine/machined.h index e7d7dfdceb..7b9b148044 100644 --- a/src/machine/machined.h +++ b/src/machine/machined.h @@ -32,6 +32,7 @@ typedef struct Manager Manager; #include "image-dbus.h" #include "machine-dbus.h" #include "machine.h" +#include "operation.h" struct Manager { sd_event *event; @@ -49,6 +50,9 @@ struct Manager { LIST_HEAD(Machine, machine_gc_queue); Machine *host_machine; + + LIST_HEAD(Operation, operations); + unsigned n_operations; }; Manager *manager_new(void); |