… | |
… | |
867 | |
867 | |
868 | #ifndef _WIN32 |
868 | #ifndef _WIN32 |
869 | |
869 | |
870 | static ev_signal childev; |
870 | static ev_signal childev; |
871 | |
871 | |
|
|
872 | #ifndef WIFCONTINUED |
|
|
873 | # define WIFCONTINUED(status) 0 |
|
|
874 | #endif |
|
|
875 | |
872 | void inline_speed |
876 | void inline_speed |
873 | child_reap (EV_P_ ev_signal *sw, int chain, int pid, int status) |
877 | child_reap (EV_P_ ev_signal *sw, int chain, int pid, int status) |
874 | { |
878 | { |
875 | ev_child *w; |
879 | ev_child *w; |
|
|
880 | int traced = WIFSTOPPED (status) || WIFCONTINUED (status); |
876 | |
881 | |
877 | for (w = (ev_child *)childs [chain & (EV_PID_HASHSIZE - 1)]; w; w = (ev_child *)((WL)w)->next) |
882 | for (w = (ev_child *)childs [chain & (EV_PID_HASHSIZE - 1)]; w; w = (ev_child *)((WL)w)->next) |
|
|
883 | { |
878 | if (w->pid == pid || !w->pid) |
884 | if ((w->pid == pid || !w->pid) |
|
|
885 | && (!traced || (w->flags & 1))) |
879 | { |
886 | { |
880 | ev_set_priority (w, ev_priority (sw)); /* need to do it *now* */ |
887 | ev_set_priority (w, ev_priority (sw)); /* need to do it *now* */ |
881 | w->rpid = pid; |
888 | w->rpid = pid; |
882 | w->rstatus = status; |
889 | w->rstatus = status; |
883 | ev_feed_event (EV_A_ (W)w, EV_CHILD); |
890 | ev_feed_event (EV_A_ (W)w, EV_CHILD); |
884 | } |
891 | } |
|
|
892 | } |
885 | } |
893 | } |
886 | |
894 | |
887 | #ifndef WCONTINUED |
895 | #ifndef WCONTINUED |
888 | # define WCONTINUED 0 |
896 | # define WCONTINUED 0 |
889 | #endif |
897 | #endif |
… | |
… | |
1198 | } |
1206 | } |
1199 | |
1207 | |
1200 | void |
1208 | void |
1201 | ev_loop_fork (EV_P) |
1209 | ev_loop_fork (EV_P) |
1202 | { |
1210 | { |
1203 | postfork = 1; // must be in line with ev_default_fork |
1211 | postfork = 1; /* must be in line with ev_default_fork */ |
1204 | } |
1212 | } |
1205 | |
1213 | |
1206 | #endif |
1214 | #endif |
1207 | |
1215 | |
1208 | #if EV_MULTIPLICITY |
1216 | #if EV_MULTIPLICITY |
… | |
… | |
1272 | #if EV_MULTIPLICITY |
1280 | #if EV_MULTIPLICITY |
1273 | struct ev_loop *loop = ev_default_loop_ptr; |
1281 | struct ev_loop *loop = ev_default_loop_ptr; |
1274 | #endif |
1282 | #endif |
1275 | |
1283 | |
1276 | if (backend) |
1284 | if (backend) |
1277 | postfork = 1; // must be in line with ev_loop_fork |
1285 | postfork = 1; /* must be in line with ev_loop_fork */ |
1278 | } |
1286 | } |
1279 | |
1287 | |
1280 | /*****************************************************************************/ |
1288 | /*****************************************************************************/ |
1281 | |
1289 | |
1282 | void |
1290 | void |