Commit fc25b815 by Michel Normand Committed by Daniel Lezcano

prepare do_start for restart code

In order to be able to use a single 'start' function for start and restart, let's prepare do_start to get an extra statefile parameter. Signed-off-by: 's avatarMichel Normand <normand@fr.ibm.com> Signed-off-by: 's avatarDaniel Lezcano <dlezcano@fr.ibm.com>
parent 69ffa311
...@@ -411,14 +411,7 @@ void lxc_abort(const char *name, struct lxc_handler *handler) ...@@ -411,14 +411,7 @@ void lxc_abort(const char *name, struct lxc_handler *handler)
kill(handler->pid, SIGKILL); kill(handler->pid, SIGKILL);
} }
struct start_arg { int do_start(void *arg)
const char *name;
char *const *argv;
struct lxc_handler *handler;
int *sv;
};
static int do_start(void *arg)
{ {
struct start_arg *start_arg = arg; struct start_arg *start_arg = arg;
struct lxc_handler *handler = start_arg->handler; struct lxc_handler *handler = start_arg->handler;
...@@ -465,6 +458,8 @@ static int do_start(void *arg) ...@@ -465,6 +458,8 @@ static int do_start(void *arg)
return -1; return -1;
} }
close(handler->sigfd);
NOTICE("exec'ing '%s'", argv[0]); NOTICE("exec'ing '%s'", argv[0]);
execvp(argv[0], argv); execvp(argv[0], argv);
...@@ -487,6 +482,7 @@ int lxc_spawn(const char *name, struct lxc_handler *handler, char *const argv[]) ...@@ -487,6 +482,7 @@ int lxc_spawn(const char *name, struct lxc_handler *handler, char *const argv[])
struct start_arg start_arg = { struct start_arg start_arg = {
.name = name, .name = name,
.argv = argv, .argv = argv,
.sfd = -1,
.handler = handler, .handler = handler,
.sv = sv, .sv = sv,
}; };
......
...@@ -38,6 +38,15 @@ struct lxc_handler { ...@@ -38,6 +38,15 @@ struct lxc_handler {
struct lxc_conf *conf; struct lxc_conf *conf;
}; };
struct start_arg {
const char *name;
struct lxc_handler *handler;
int *sv;
char *const *argv;
int sfd;
};
extern int do_start(void *arg);
extern struct lxc_handler *lxc_init(const char *name, struct lxc_conf *); extern struct lxc_handler *lxc_init(const char *name, struct lxc_conf *);
extern int lxc_spawn(const char *name, struct lxc_handler *handler, extern int lxc_spawn(const char *name, struct lxc_handler *handler,
char *const argv[]); char *const argv[]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment