… | |
… | |
2733 | } |
2733 | } |
2734 | |
2734 | |
2735 | void |
2735 | void |
2736 | ev_loop_fork (EV_P) EV_THROW |
2736 | ev_loop_fork (EV_P) EV_THROW |
2737 | { |
2737 | { |
2738 | postfork = 1; /* must be in line with ev_default_fork */ |
2738 | postfork = 1; |
2739 | } |
2739 | } |
2740 | |
2740 | |
2741 | /*****************************************************************************/ |
2741 | /*****************************************************************************/ |
2742 | |
2742 | |
2743 | void |
2743 | void |
… | |
… | |
3135 | backend_poll (EV_A_ waittime); |
3135 | backend_poll (EV_A_ waittime); |
3136 | assert ((loop_done = EVBREAK_CANCEL, 1)); /* assert for side effect */ |
3136 | assert ((loop_done = EVBREAK_CANCEL, 1)); /* assert for side effect */ |
3137 | |
3137 | |
3138 | pipe_write_wanted = 0; /* just an optimisation, no fence needed */ |
3138 | pipe_write_wanted = 0; /* just an optimisation, no fence needed */ |
3139 | |
3139 | |
|
|
3140 | MEMORY_FENCE_ACQUIRE; |
3140 | if (pipe_write_skipped) |
3141 | if (pipe_write_skipped) |
3141 | { |
3142 | { |
3142 | assert (("libev: pipe_w not active, but pipe not written", ev_is_active (&pipe_w))); |
3143 | assert (("libev: pipe_w not active, but pipe not written", ev_is_active (&pipe_w))); |
3143 | ev_feed_event (EV_A_ &pipe_w, EV_CUSTOM); |
3144 | ev_feed_event (EV_A_ &pipe_w, EV_CUSTOM); |
3144 | } |
3145 | } |