I like it. Assuming a mention in tcpbench.1 - ok procter
> On 4/05/2020, at 4:25 AM, Stuart Henderson <s...@spacehopper.org> wrote: > > Is it worth triggering this on SIGINFO? I use that often with ping(1). > > Index: tcpbench.c > =================================================================== > RCS file: /cvs/src/usr.bin/tcpbench/tcpbench.c,v > retrieving revision 1.62 > diff -u -p -r1.62 tcpbench.c > --- tcpbench.c 2 May 2020 22:00:29 -0000 1.62 > +++ tcpbench.c 3 May 2020 16:24:05 -0000 > @@ -213,6 +213,10 @@ signal_handler(int sig, short event, voi > * signal handler rules don't apply, libevent decouples for us > */ > switch (sig) { > + case SIGINFO: > + printf("\n"); > + wrapup(-1); > + break; > case SIGINT: > printf("\n"); > wrapup(0); > @@ -1109,7 +1113,8 @@ wrapup(int err) > summary_display(); > } > > - exit(err); > + if (err != -1) > + exit(err); > } > > int > @@ -1126,7 +1131,7 @@ main(int argc, char **argv) > int family = PF_UNSPEC; > struct nlist nl[] = { { "_tcbtable" }, { "" } }; > const char *host = NULL, *port = DEFAULT_PORT, *srcbind = NULL; > - struct event ev_sigint, ev_sigterm, ev_sighup, ev_progtimer; > + struct event ev_sigint, ev_sigterm, ev_sighup, ev_siginfo, ev_progtimer; > struct sockaddr_un sock_un; > > /* Init world */ > @@ -1362,9 +1367,11 @@ main(int argc, char **argv) > signal_set(&ev_sigterm, SIGTERM, signal_handler, NULL); > signal_set(&ev_sighup, SIGHUP, signal_handler, NULL); > signal_set(&ev_sigint, SIGINT, signal_handler, NULL); > + signal_set(&ev_siginfo, SIGINFO, signal_handler, NULL); > signal_add(&ev_sigint, NULL); > signal_add(&ev_sigterm, NULL); > signal_add(&ev_sighup, NULL); > + signal_add(&ev_siginfo, NULL); > signal(SIGPIPE, SIG_IGN); > > if (UDP_MODE) { >