svn commit: r238743 - head/cddl/contrib/opensolaris/cmd/dtrace

Andriy Gapon avg at FreeBSD.org
Tue Jul 24 21:10:48 UTC 2012


on 24/07/2012 21:01 George V. Neville-Neil said the following:
> Author: gnn
> Date: Tue Jul 24 18:01:28 2012
> New Revision: 238743
> URL: http://svn.freebsd.org/changeset/base/238743
> 
> Log:
>   Fix a bug in interrupt handling so that we're only considered
>   impatient if we sent more than 2 INT signals.  This fixes a bug where
>   we wouldn't see aggregations print on the command line if we Ctrl-C'd
>   a dtrace script or command line invocation.

I'd rather fix the shell that sends 2 or 2+ SIGINTs on one Ctrl-C. [half-joking]
I think that _a bug_ is there, not here.  I do not experience any such problems
with zsh.

>   MFC after:	2 weeks
> 
> Modified:
>   head/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c
> 
> Modified: head/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c
> ==============================================================================
> --- head/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c	Tue Jul 24 16:29:33 2012	(r238742)
> +++ head/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c	Tue Jul 24 18:01:28 2012	(r238743)
> @@ -70,6 +70,8 @@ typedef struct dtrace_cmd {
>  #define	E_ERROR		1
>  #define	E_USAGE		2
>  
> +#define IMPATIENT_LIMIT	2
> +
>  static const char DTRACE_OPTSTR[] =
>  	"3:6:aAb:Bc:CD:ef:FGhHi:I:lL:m:n:o:p:P:qs:SU:vVwx:X:Z";
>  
> @@ -1202,7 +1204,7 @@ intr(int signo)
>  	if (!g_intr)
>  		g_newline = 1;
>  
> -	if (g_intr++)
> +	if (g_intr++ > IMPATIENT_LIMIT)
>  		g_impatient = 1;

Because of the postfix ++ g_impatient will be set to one at the _forth_ run
through this code (assuming that the initial value of g_intr is zero) contrary
to what you say in the commit message.

>  }
>  
> 

BTW, posting even trivial patches for a review as a part of the routine seems to
be a good habit in general.

-- 
Andriy Gapon


More information about the svn-src-head mailing list