Re: [PATCH 02/12][user-cr] restart: Add args->send_sigint

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nack - the library should not handle signals for callers.

Instead, there should be an interface through which the caller
can ask the library to destroy the tree that it just created.
Thus it will be the caller who catches the signal and acts on
it.

Oren.

Sukadev Bhattiprolu wrote:
> From: Sukadev Bhattiprolu <sukadev@xxxxxxxxxxxxxxxxxx>
> Date: Thu, 4 Mar 2010 17:37:39 -0800
> Subject: [PATCH 02/12][user-cr] restart: Add args->send_sigint
> 
> restart command supports a command line option, --send-sigint to let
> user specify whether SIGINT signal should be processed/ignored during
> restart. Make this a field in 'struct app_restart_args' so that other
> callers of app_restart() in the future can also control the SIGINT
> behavior.
> 
> Signed-off-by: Sukadev Bhattiprolu <sukadev@xxxxxxxxxxxxxxxxxx>
> ---
>  restart.c |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)
> 
> diff --git a/restart.c b/restart.c
> index 0c74bb6..314390c 100644
> --- a/restart.c
> +++ b/restart.c
> @@ -376,6 +376,7 @@ struct app_restart_args {
>  	int pids;
>  	int pidns;
>  	int inspect;
> +	int send_sigint;
>  	char *root;
>  	int wait;
>  	int mntns;
> @@ -497,6 +498,7 @@ static void parse_args(struct app_restart_args *args, int argc, char *argv[])
>  	args->klogfd = -1;
>  	args->warn = CKPT_COND_WARN;
>  	args->fail = CKPT_COND_FAIL;
> +	args->send_sigint = -1;
>  	no_pidns = 0;
>  
>  	klogfile = NULL;
> @@ -554,7 +556,7 @@ static void parse_args(struct app_restart_args *args, int argc, char *argv[])
>  				ckpt_err("restart: invalid signal\n");
>  				exit(1);
>  			}
> -			global_send_sigint = sig;
> +			args->send_sigint = sig;
>  			break;
>  		case 3:  /* --pids */
>  			args->pids = 1;
> @@ -815,6 +817,8 @@ int app_restart(struct app_restart_args *args)
>  	memset(&ctx, 0, sizeof(ctx));
>  	ctx.args = args;
>  
> +	global_send_sigint = args->send_sigint;
> +
>  	/* input file descriptor (default: stdin) */
>  	if (args->infd >= 0) {
>  		if (dup2(args->infd, STDIN_FILENO) < 0) {
_______________________________________________
Containers mailing list
Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/containers

[Index of Archives]     [Cgroups]     [Netdev]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux