… | |
… | |
2683 | #endif |
2683 | #endif |
2684 | |
2684 | |
2685 | array_needsize (ANSIG, signals, signalmax, w->signum, array_init_zero); |
2685 | array_needsize (ANSIG, signals, signalmax, w->signum, array_init_zero); |
2686 | |
2686 | |
2687 | #ifndef _WIN32 |
2687 | #ifndef _WIN32 |
|
|
2688 | # if EV_USE_SIGNALFD |
2688 | if (sigfd < 0)/*TODO*/ |
2689 | if (sigfd < 0)/*TODO*/ |
|
|
2690 | # endif |
2689 | sigdelset (&prev, w->signum); |
2691 | sigdelset (&prev, w->signum); |
2690 | sigprocmask (SIG_SETMASK, &prev, 0); |
2692 | sigprocmask (SIG_SETMASK, &prev, 0); |
2691 | #endif |
2693 | #endif |
2692 | } |
2694 | } |
2693 | |
2695 | |
… | |
… | |
2697 | if (!((WL)w)->next) |
2699 | if (!((WL)w)->next) |
2698 | { |
2700 | { |
2699 | #if _WIN32 |
2701 | #if _WIN32 |
2700 | signal (w->signum, ev_sighandler); |
2702 | signal (w->signum, ev_sighandler); |
2701 | #else |
2703 | #else |
|
|
2704 | # if EV_USE_SIGNALFD |
2702 | if (sigfd < 0) /*TODO*/ |
2705 | if (sigfd < 0) /*TODO*/ |
|
|
2706 | # endif |
2703 | { |
2707 | { |
2704 | struct sigaction sa = { }; |
2708 | struct sigaction sa = { }; |
2705 | sa.sa_handler = ev_sighandler; |
2709 | sa.sa_handler = ev_sighandler; |
2706 | sigfillset (&sa.sa_mask); |
2710 | sigfillset (&sa.sa_mask); |
2707 | sa.sa_flags = SA_RESTART; /* if restarting works we save one iteration */ |
2711 | sa.sa_flags = SA_RESTART; /* if restarting works we save one iteration */ |