1 | Revision history for libeio |
1 | Revision history for libeio |
2 | |
2 | |
3 | TODO: maybe add mincore support? available on at leats darwin, solaris, linux, freebsd |
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? |
4 | |
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 |
5 | 1.0 |
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). |
6 | - readdir: correctly handle malloc failures. |
21 | - readdir: correctly handle malloc failures. |
7 | - readdir: new flags argument, can return inode |
22 | - readdir: new flags argument, can return inode |
8 | and possibly filetype, can sort in various ways. |
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. |
9 | - added EIO_STACKSIZE. |
28 | - added EIO_STACKSIZE. |
10 | - added msync, mtouch support (untested). |
29 | - added msync, mtouch support (untested). |
11 | - added sync_file_range (untested). |
30 | - added sync_file_range (untested). |
12 | - fixed custom support. |
31 | - fixed custom support. |
13 | - use a more robust feed-add detection method. |
32 | - use a more robust feed-add detection method. |
14 | - "outbundled" from IO::AIO. |
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. |
15 | |
98 | |
|
|
99 | |