diff options
| -rw-r--r-- | Changes | 3 | ||||
| -rw-r--r-- | eio.c | 3 | 
2 files changed, 6 insertions, 0 deletions
@@ -42,3 +42,6 @@ TODO: fadvise request            combination EIO_READDIR_STAT_ORDER | EIO_READDIR_DIRS_FIRST.          - port to openbsd (another blatantly broken non-UNIX/POSIX platform).          - fix eio_custom prototype. +        - work around a Linux (and likely FreeBSD and other kernels) bug +          where sendfile would not transfer all the requested bytes on +          large transfers, using a heuristic. @@ -1006,6 +1006,9 @@ eio__sendfile (int ofd, int ifd, off_t offset, size_t count, etp_worker *self)  #elif defined (_WIN32)        /* does not work, just for documentation of what would need to be done */ +      /* actually, cannot be done like this, as TransmitFile changes the file offset, */ +      /* libeio guarantees that the file offset does not change, and windows */ +      /* has no way to get an independent handle to the same file description */        HANDLE h = TO_SOCKET (ifd);        SetFilePointer (h, offset, 0, FILE_BEGIN);        res = TransmitFile (TO_SOCKET (ofd), h, count, 0, 0, 0, 0);  | 
