Commit 35ff8ede authored by Jason Madden's avatar Jason Madden

Update libev to version 4.22

parent bf62d1aa
...@@ -4,6 +4,11 @@ ...@@ -4,6 +4,11 @@
.. currentmodule:: gevent .. currentmodule:: gevent
1.2a1 (unreleased)
==================
- Update libev to version 4.22.
1.1.0 (Mar 5, 2016) 1.1.0 (Mar 5, 2016)
=================== ===================
......
...@@ -14,6 +14,16 @@ TODO: embed watchers need updating when fd changes ...@@ -14,6 +14,16 @@ TODO: embed watchers need updating when fd changes
TODO: document portability requirements for atomic pointer access TODO: document portability requirements for atomic pointer access
TODO: document requirements for function pointers and calling conventions. TODO: document requirements for function pointers and calling conventions.
4.22 Sun Dec 20 22:11:50 CET 2015
- when epoll detects unremovable fds in the fd set, rebuild
only the epoll descriptor, not the signal pipe, to avoid
SIGPIPE in ev_async_send. This doesn't solve it on fork,
so document what needs to be done in ev_loop_fork
(analyzed by Benjamin Mahler).
- remove superfluous sys/timeb.h include on win32
(analyzed by Jason Madden).
- updated libecb.
4.20 Sat Jun 20 13:01:43 CEST 2015 4.20 Sat Jun 20 13:01:43 CEST 2015
- prefer noexcept over throw () with C++ 11. - prefer noexcept over throw () with C++ 11.
- update ecb.h due to incompatibilities with c11. - update ecb.h due to incompatibilities with c11.
......
...@@ -2721,7 +2721,7 @@ fi ...@@ -2721,7 +2721,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE=libev PACKAGE=libev
VERSION=4.20 VERSION=4.22
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
......
This diff is collapsed.
...@@ -211,7 +211,7 @@ struct ev_loop; ...@@ -211,7 +211,7 @@ struct ev_loop;
/*****************************************************************************/ /*****************************************************************************/
#define EV_VERSION_MAJOR 4 #define EV_VERSION_MAJOR 4
#define EV_VERSION_MINOR 20 #define EV_VERSION_MINOR 22
/* eventmask, revents, events... */ /* eventmask, revents, events... */
enum { enum {
......
...@@ -179,7 +179,7 @@ epoll_poll (EV_P_ ev_tstamp timeout) ...@@ -179,7 +179,7 @@ epoll_poll (EV_P_ ev_tstamp timeout)
if (expect_false ((uint32_t)anfds [fd].egen != (uint32_t)(ev->data.u64 >> 32))) if (expect_false ((uint32_t)anfds [fd].egen != (uint32_t)(ev->data.u64 >> 32)))
{ {
/* recreate kernel state */ /* recreate kernel state */
postfork = 1; postfork |= 2;
continue; continue;
} }
...@@ -203,7 +203,7 @@ epoll_poll (EV_P_ ev_tstamp timeout) ...@@ -203,7 +203,7 @@ epoll_poll (EV_P_ ev_tstamp timeout)
/* which is fortunately easy to do for us. */ /* which is fortunately easy to do for us. */
if (epoll_ctl (backend_fd, want ? EPOLL_CTL_MOD : EPOLL_CTL_DEL, fd, ev)) if (epoll_ctl (backend_fd, want ? EPOLL_CTL_MOD : EPOLL_CTL_DEL, fd, ev))
{ {
postfork = 1; /* an error occurred, recreate kernel state */ postfork |= 2; /* an error occurred, recreate kernel state */
continue; continue;
} }
} }
......
...@@ -39,17 +39,6 @@ ...@@ -39,17 +39,6 @@
#ifdef _WIN32 #ifdef _WIN32
/* timeb.h is actually xsi legacy functionality */
/* JAM: gevent: A CHANGES entry says that GetSystemTimeAsFileTime is now
* used instead of timeb. So maybe this isn't needed? It breaks the build
* on Visual Studio 2014.
* UPDATE: upstream confirms this isn't needed and has removed it from what will
* become 4.22. See http://lists.schmorp.de/pipermail/libev/2015q4/002586.html
*/
#if 0
#include <sys/timeb.h>
#endif
/* note: the comment below could not be substantiated, but what would I care */ /* note: the comment below could not be substantiated, but what would I care */
/* MSDN says this is required to handle SIGFPE */ /* MSDN says this is required to handle SIGFPE */
/* my wild guess would be that using something floating-pointy is required */ /* my wild guess would be that using something floating-pointy is required */
...@@ -99,6 +88,8 @@ ev_pipe (int filedes [2]) ...@@ -99,6 +88,8 @@ ev_pipe (int filedes [2])
if (connect (sock [0], (struct sockaddr *)&addr, addr_size)) if (connect (sock [0], (struct sockaddr *)&addr, addr_size))
goto fail; goto fail;
/* TODO: returns INVALID_SOCKET on winsock accept, not < 0. fix it */
/* when convenient, probably by just removing error checking altogether? */
if ((sock [1] = accept (listener, 0, 0)) < 0) if ((sock [1] = accept (listener, 0, 0)) < 0)
goto fail; goto fail;
...@@ -168,3 +159,4 @@ ev_time (void) ...@@ -168,3 +159,4 @@ ev_time (void)
} }
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment