| 1 |
Revision history for libeio |
| 2 |
|
| 3 |
TODO: maybe add mincore support? available on at least darwin, solaris, linux, freebsd |
| 4 |
TODO: openbsd requires stdint.h for intptr_t - why posix? |
| 5 |
|
| 6 |
TODO: make mtouch/readdir maybe others cancellable in-request |
| 7 |
TODO: fadvise request |
| 8 |
TODO: fdopendir/utimensat |
| 9 |
TODO: maybe work around 3.996gb barrier in pread/pwrite as well, maybe readahead etc.? |
| 10 |
TODO: pthread_condattr_setclock(..., CLOCK_MONOTONIC) and clock_gettime(CLOCK_MONOTONIC) instead of defualt CLOCK_REALTIME timeouts |
| 11 |
1.0 |
| 12 |
- for simple request api, initialise result/errorno to -1/ECANCELED. |
| 13 |
- fix a deadlock where a wakeup signal could be missed when |
| 14 |
a timeout occured at the same time. |
| 15 |
- use nonstandard but maybe-working-on-bsd fork technique. |
| 16 |
- use fewer time() syscalls when waiting for new requests. |
| 17 |
- fix a path-memory-leak in readdir when using the wrappers |
| 18 |
(reported by Thomas L. Shinnick). |
| 19 |
- support a max_idle value of 0. |
| 20 |
- support setting of idle timeout value (eio_set_idle_timeout). |
| 21 |
- readdir: correctly handle malloc failures. |
| 22 |
- readdir: new flags argument, can return inode |
| 23 |
and possibly filetype, can sort in various ways. |
| 24 |
- readdir: stop immediately when cancelled, do |
| 25 |
not continue reading the directory. |
| 26 |
- fix return value of eio_sendfile_sync. |
| 27 |
- include sys/mman.h for msync. |
| 28 |
- added EIO_STACKSIZE. |
| 29 |
- added msync, mtouch support (untested). |
| 30 |
- added sync_file_range (untested). |
| 31 |
- fixed custom support. |
| 32 |
- use a more robust feed-add detection method. |
| 33 |
- "outbundled" from IO::AIO. |
| 34 |
- eio_set_max_polltime did not properly convert time to ticks. |
| 35 |
- tentatively support darwin in sendfile. |
| 36 |
- fix freebsd/darwin sendfile. |
| 37 |
- also use sendfile emulation for ENOTSUP and EOPNOTSUPP |
| 38 |
error codes. |
| 39 |
- add OS-independent EIO_MT_* and EIO_MS_* flag enums. |
| 40 |
- add eio_statvfs/eio_fstatvfs. |
| 41 |
- add eio_mlock/eio_mlockall and OS-independent MCL_* flag enums. |
| 42 |
- no longer set errno to 0 before making syscalls, this only lures |
| 43 |
people into the trap of believing errno shows success or failure. |
| 44 |
- "fix" demo.c so that it works as non-root. |
| 45 |
- suppoert utimes seperately from futimes, as some systems have |
| 46 |
utimes but not futimes. |
| 47 |
- use _POSIX_MEMLOCK_RANGE for mlock. |
| 48 |
- do not (errornously) overwrite CFLAGS in configure.ac. |
| 49 |
- mknod used int3 for dev_t (ยง2 bit), not offs (64 bit). |
| 50 |
- fix memory corruption in eio_readdirx for the flags |
| 51 |
combination EIO_READDIR_STAT_ORDER | EIO_READDIR_DIRS_FIRST. |
| 52 |
- port to openbsd (another blatantly broken non-UNIX/POSIX platform). |
| 53 |
- fix eio_custom prototype. |
| 54 |
- work around a Linux (and likely FreeBSD and other kernels) bug |
| 55 |
where sendfile would not transfer all the requested bytes on |
| 56 |
large transfers, using a heuristic. |
| 57 |
- use libecb, and apply lots of minor space optimisations. |
| 58 |
- disable sendfile on darwin, broken as everything else. |
| 59 |
- add realpath request and implementation. |
| 60 |
- cancelled requests will still invoke their request callbacks. |
| 61 |
- add fallocate. |
| 62 |
- do not acquire any locks when forking. |
| 63 |
- incorporated some mingw32 changes by traviscline. |
| 64 |
- added syncfs support, using direct syscall. |
| 65 |
- set thread name on linux (ps -L/Hcx, top, gdb). |
| 66 |
- remove useless use of volatile variables. |
| 67 |
- fix memory leak when reaping threads. |
| 68 |
- use utime now uses nanosecond resolution on posix 2008 systems. |
| 69 |
- allow taking advantage of posix 2008 xxxat functions and fdopendir |
| 70 |
by implementing a working directory abstraction. |
| 71 |
- make readahead emulation behave more like actual readahead by never failing. |
| 72 |
- added EIO_LSEEK (untested). |
| 73 |
- added EIO_FALLOC_FL_PUNCH_HOLE. |
| 74 |
- wtf. etp_proc returned 0, and no compiler ever complained. |
| 75 |
- remove pread/pwrite emulation, as the only system that lacked them |
| 76 |
(cygwin) provides them for a while now. |
| 77 |
- provide pread/pwrite implementations for win32. |
| 78 |
- implement aio_realpath for windows. |
| 79 |
- add EIO_FALLOC_FL_COLLAPSE_RANGE and EIO_FALLOC_FL_ZERO_RANGE. |
| 80 |
- add EIO_FCNTL, EIO_IOCTL. |
| 81 |
- try to use SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE when creating |
| 82 |
symlinks on windows. |
| 83 |
- support a minimum of EIO_PATH_MIN (default: 8160) as PATH_MAX (including |
| 84 |
trailing 0 byte) in readlink, realpath etc. |
| 85 |
- generate ENAMETOOLONG if readlink overflow is detected. |
| 86 |
- implement support for renameat2, and corresponding flags. |
| 87 |
- add EIO_FALLOC_FL_INSERT_RANGE and EIO_FALLOC_FL_UNSHARE_RANGE. |
| 88 |
- use posix_close if available or needed. |
| 89 |
- save errno around close in ftruncateat, fstatvfsat and EIO_CLOSE. |
| 90 |
- add EIO_SLURP convenience request. |
| 91 |
- update configure.ac for newer autoconf/automake. |
| 92 |
- include sys/prctl.h if available. |
| 93 |
- use O_NONBLOCK when opening directories and in truncateat and statvfsat. |
| 94 |
- add EIO_MCL_ONFAULT. |
| 95 |
- add eio_mlockall_sync. |
| 96 |
- fix configure tests for readahead and sync_file_range, they were based on the |
| 97 |
manpages, which turned out to be wrong. |
| 98 |
- protect wd_open against fd being 0, which is used for the value of EIO_CWD. |
| 99 |
|
| 100 |
|