… | |
… | |
450 | { |
450 | { |
451 | WL head; |
451 | WL head; |
452 | unsigned char events; |
452 | unsigned char events; |
453 | unsigned char reify; |
453 | unsigned char reify; |
454 | unsigned char emask; /* the epoll backend stores the actual kernel mask in here */ |
454 | unsigned char emask; /* the epoll backend stores the actual kernel mask in here */ |
455 | unsigned char unused; /* currently unused padding */ |
455 | unsigned char egen; /* generation counter to counter epoll bugs */ |
456 | #if EV_SELECT_IS_WINSOCKET |
456 | #if EV_SELECT_IS_WINSOCKET |
457 | SOCKET handle; |
457 | SOCKET handle; |
458 | #endif |
458 | #endif |
459 | } ANFD; |
459 | } ANFD; |
460 | |
460 | |
… | |
… | |
806 | |
806 | |
807 | for (fd = 0; fd < anfdmax; ++fd) |
807 | for (fd = 0; fd < anfdmax; ++fd) |
808 | if (anfds [fd].events) |
808 | if (anfds [fd].events) |
809 | { |
809 | { |
810 | anfds [fd].events = 0; |
810 | anfds [fd].events = 0; |
|
|
811 | anfds [fd].emask = 0; |
811 | fd_change (EV_A_ fd, EV_IOFDSET | 1); |
812 | fd_change (EV_A_ fd, EV_IOFDSET | 1); |
812 | } |
813 | } |
813 | } |
814 | } |
814 | |
815 | |
815 | /*****************************************************************************/ |
816 | /*****************************************************************************/ |
… | |
… | |
1637 | ev_default_destroy (void) |
1638 | ev_default_destroy (void) |
1638 | { |
1639 | { |
1639 | #if EV_MULTIPLICITY |
1640 | #if EV_MULTIPLICITY |
1640 | struct ev_loop *loop = ev_default_loop_ptr; |
1641 | struct ev_loop *loop = ev_default_loop_ptr; |
1641 | #endif |
1642 | #endif |
|
|
1643 | |
|
|
1644 | ev_default_loop_ptr = 0; |
1642 | |
1645 | |
1643 | #ifndef _WIN32 |
1646 | #ifndef _WIN32 |
1644 | ev_ref (EV_A); /* child watcher */ |
1647 | ev_ref (EV_A); /* child watcher */ |
1645 | ev_signal_stop (EV_A_ &childev); |
1648 | ev_signal_stop (EV_A_ &childev); |
1646 | #endif |
1649 | #endif |