> On Wed, 23 Dec 2015 15:03:15 -0500
> Zhihong Wang <zhihong.wang at intel.com> wrote:
>
> > +/* When we receive a INT signal, close all ports */ static void
> > +sigint_handler(__rte_unused int signum) {
> > + unsigned portid, nb_ports;
> > +
> > + printf("Preparing to exit...\n");
> > + nb_ports = rte_eth_dev_count();
> > + for (portid = 0; portid < nb_ports; portid++) {
> > + if ((enabled_port_mask & (1 << portid)) == 0) {
> > + continue;
> > + }
> > + printf("Stopping port %d...", portid);
> > + rte_eth_dev_stop(portid);
> > + rte_eth_dev_close(portid);
> > + printf(" Done\n");
> > + }
> > + printf("Bye...\n");
> > + exit(0);
> > +}
>
> Signal handlers should only set a flag, which is then checked by thread loops.
> Calling functions in DPDK from signal handlers is not safe.
I'll make changes in v2 to address this issue. Thanks for pointing out :)
In some cases signal handler have to do the exit though, like when the program
is still doing memory initialization and will take some time.