Giampaolo Rodola' <g.rod...@gmail.com> added the comment: Please note that on FreeBSD things work a little bit differently for non-blocking sockets: http://www.freebsd.org/cgi/man.cgi?query=sendfile&sektion=2
In details I'm talking about: > When using a socket marked for non-blocking I/O, sendfile() may send > fewer bytes than requested. In this case, the number of bytes > success-fully written is returned in *sbytes (if specified), and the > error EAGAIN is returned. ...and the similar note about EBUSY, later in the page. Something like this should work: ret = sendfile(in, out, offset, &sbytes, &sf, flags); ... if (ret == -1) { if ((errno == EAGAIN) || (errno == EBUSY)) { return Py_BuildValue("ll", sbytes, offset + sbytes); } return posix_error(); } ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue10882> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com