diff -r 5f90ef1df157 Modules/selectmodule.c --- a/Modules/selectmodule.c Wed Mar 18 16:05:32 2015 +0100 +++ b/Modules/selectmodule.c Thu Mar 19 14:28:59 2015 +0100 @@ -718,14 +718,10 @@ static int devpoll_flush(devpollObject * size = sizeof(struct pollfd)*self->n_fds; self->n_fds = 0; - Py_BEGIN_ALLOW_THREADS - n = write(self->fd_devpoll, self->fds, size); - Py_END_ALLOW_THREADS + n = _Py_write(self->fd_devpoll, self->fds, size); + if (n == -1) + return -1; - if (n == -1 ) { - PyErr_SetFromErrno(PyExc_IOError); - return -1; - } if (n < size) { /* ** Data writed to /dev/poll is a binary data structure. It is not