… | |
… | |
2045 | void noinline |
2045 | void noinline |
2046 | ev_feed_signal_event (EV_P_ int signum) EV_THROW |
2046 | ev_feed_signal_event (EV_P_ int signum) EV_THROW |
2047 | { |
2047 | { |
2048 | WL w; |
2048 | WL w; |
2049 | |
2049 | |
2050 | if (expect_false (signum <= 0 || signum > EV_NSIG)) |
2050 | if (expect_false (signum <= 0 || signum >= EV_NSIG)) |
2051 | return; |
2051 | return; |
2052 | |
2052 | |
2053 | --signum; |
2053 | --signum; |
2054 | |
2054 | |
2055 | #if EV_MULTIPLICITY |
2055 | #if EV_MULTIPLICITY |
… | |
… | |
2550 | EV_WIN32_CLOSE_FD (evpipe [1]); |
2550 | EV_WIN32_CLOSE_FD (evpipe [1]); |
2551 | } |
2551 | } |
2552 | |
2552 | |
2553 | #if EV_SIGNAL_ENABLE || EV_ASYNC_ENABLE |
2553 | #if EV_SIGNAL_ENABLE || EV_ASYNC_ENABLE |
2554 | evpipe_init (EV_A); |
2554 | evpipe_init (EV_A); |
2555 | /* now iterate over everything, in case we missed something */ |
2555 | /* iterate over everything, in case we missed something before */ |
2556 | pipecb (EV_A_ &pipe_w, EV_READ); |
2556 | ev_feed_event (EV_A_ &pipe_w, EV_CUSTOM); |
2557 | #endif |
2557 | #endif |
2558 | } |
2558 | } |
2559 | |
2559 | |
2560 | postfork = 0; |
2560 | postfork = 0; |
2561 | } |
2561 | } |
… | |
… | |
2762 | } |
2762 | } |
2763 | |
2763 | |
2764 | void noinline |
2764 | void noinline |
2765 | ev_invoke_pending (EV_P) |
2765 | ev_invoke_pending (EV_P) |
2766 | { |
2766 | { |
2767 | for (pendingpri = NUMPRI; pendingpri--; ) /* pendingpri is modified during the loop */ |
2767 | pendingpri = NUMPRI; |
|
|
2768 | |
|
|
2769 | while (pendingpri) /* pendingpri possibly gets modified in the inner loop */ |
|
|
2770 | { |
|
|
2771 | --pendingpri; |
|
|
2772 | |
2768 | while (pendingcnt [pendingpri]) |
2773 | while (pendingcnt [pendingpri]) |
2769 | { |
2774 | { |
2770 | ANPENDING *p = pendings [pendingpri] + --pendingcnt [pendingpri]; |
2775 | ANPENDING *p = pendings [pendingpri] + --pendingcnt [pendingpri]; |
2771 | |
2776 | |
2772 | p->w->pending = 0; |
2777 | p->w->pending = 0; |
2773 | EV_CB_INVOKE (p->w, p->events); |
2778 | EV_CB_INVOKE (p->w, p->events); |
2774 | EV_FREQUENT_CHECK; |
2779 | EV_FREQUENT_CHECK; |
2775 | } |
2780 | } |
|
|
2781 | } |
2776 | } |
2782 | } |
2777 | |
2783 | |
2778 | #if EV_IDLE_ENABLE |
2784 | #if EV_IDLE_ENABLE |
2779 | /* make idle watchers pending. this handles the "call-idle */ |
2785 | /* make idle watchers pending. this handles the "call-idle */ |
2780 | /* only when higher priorities are idle" logic */ |
2786 | /* only when higher priorities are idle" logic */ |