ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/Changes
Revision: 1.251
Committed: Fri May 27 00:44:49 2011 UTC (13 years ago) by root
Branch: MAIN
CVS Tags: rel-3_9
Changes since 1.250: +3 -17 lines
Log Message:
3.9

File Contents

# User Rev Content
1 root 1.31 Revision history for IO::AIO
2 root 1.30
3 root 1.59 TODO: better autoconf.pm that can return LIBS etc.
4 root 1.114 TODO: aio_cptree/mvtree
5 root 1.106 TODO: reduce condvar fairness: schedule hot-cache-threads first?
6 root 1.176 TODO: splice/tee/vmsplice? (http://kerneltrap.org/node/6505 http://lwn.net/Articles/178199/)
7 root 1.136 TODO: aio_fcntl, at least for file-locking
8 root 1.196 TODO: fallocate, if it wouldn't be so useless.
9 root 1.223 TODO: aio_mincore?
10 root 1.249
11 root 1.251 3.9 Fri May 27 02:43:47 CEST 2011
12 root 1.250 - (libeio) fix memory corruption in aio_readdirx for the flags
13     combination READDIR_STAT_ORDER | READDIR_DIRS_FIRST.
14 root 1.251 - add lots of newre POSIX and GNU/Linux-specific open
15     flags.
16 root 1.238
17 root 1.247 3.8 Sun Mar 27 12:25:33 CEST 2011
18 root 1.245 - use nonstandard but maybe-working-on-bsd fork technique.
19     - support a max_idle value of 0.
20 root 1.246 - support setting of idle timeout value (IO::AIO::idle_timeout).
21 root 1.245
22     3.72 Fri Feb 11 04:25:38 CET 2011
23 root 1.248 - use _POSIX_MEMLOCK_RANGE to detect mlock/munlock.
24 root 1.244 - aio_mknod always used a dev_t value of 0.
25 root 1.242 - new treescan option: --grep.
26 root 1.244 - add more S_IF macros, and major/minor/makedev "macros".
27 root 1.241
28 root 1.240 3.71 Thu Dec 30 08:18:46 CET 2010
29     - the numerical result value passed to callbacks did not stringify
30     correctly, due to internal reuse and failure to reset the sv flags.
31 root 1.239 - actually test for posix_[mf]advise, as at least uClibc defines
32     _POSIX_ADVISORY_INFO without actually having any of the required
33     funcitonality. ugh.
34    
35 root 1.238 3.7 Mon Nov 1 23:00:34 CET 2010
36     - implement/add madvise, mmap, munmap, aio_mlockall, munlockall,
37     aio_mlock, munlock, msync and mtouch to @EXPORT_OK.
38     - document the sad state of affairs w.r.t. pthread on many bsds.
39     - do not enable mmap on systems without _POSIX_MAPPED_FILES
40     (openbsd 4.8).
41 root 1.231 - do not leak memory in IO::AIO::mmap when the scalar already
42     had string-data.
43 root 1.238 - add O_RDWR, O_APPEND and O_EXCL symbols and semi-document
44 root 1.228 them.
45 root 1.230 - cache the result IV, for a minor speedup in the common case.
46 root 1.231 - croak when an mmapped-scalar changes location, to detect
47     user-errors better.
48 root 1.237 - fix aio_readlink prototype.
49 root 1.228
50 root 1.227 3.65 Wed Mar 31 02:45:05 CEST 2010
51 root 1.225 - actually use PATH_MAX instead of NAME_MAX for readlink, as to not
52     cut off long pathnames in aio_readlink (based on patch by
53     Rasmus Andersson).
54 root 1.227 - a double fork partially killed the event pipe (great testcase
55     by dormando). affects IO::AIO, BDB and Async::Interrupt.
56     - suck steve's dick and rename our symbols to avoid colliding
57     with nonstandard identifier spam on the broken os x pseudo-os.
58     affects IO::AIO and BDB.
59 root 1.225
60 root 1.224 3.6 Mon Jan 11 00:43:39 CET 2010
61 root 1.219 - (libeio) more fixes for the freebsd/apple sendfile - broken by
62     manpage standards, but apparently correct accoridng to actual
63     kernel sources.
64 root 1.222 - add IO::AIO::mmap/munmap support.
65 root 1.220 - add IO::AIO::m(un)lockall support.
66 root 1.221 - clean up manpage.
67 root 1.218
68 root 1.217 3.5 Thu Jan 7 21:25:04 CET 2010
69 root 1.214 - (liebio) fix freebsd sendfile (Vanilla Hsu).
70     - (libeio) also fix darwin sendfile that suffered from a similar bug.
71 root 1.215 - add aio_statvfs as interface to statvfs/fstatvfs.
72 root 1.216 - work around buggy symlink() on cygwin in the testsuite.
73 root 1.217 - wtf. freebsd-8.0 actually passes the testsuite! I knew
74     they could implement fork and semaphores one day! cheers!
75 root 1.214
76 root 1.213 3.4 Sat Jan 2 15:13:04 CET 2010
77 root 1.209 - (libeio) max_poll_time was not properly converted to ticks.
78     - clarify cancel_subs description.
79 root 1.210 - IO::AIO::sendfile did not actually return the return value
80     from the sendfile call.
81 root 1.212 - implement aio_msync, aio_mtouch.
82 root 1.211 - (libeio) tentatively support darwin in sendfile.
83 root 1.209
84 root 1.208 3.31 Thu Nov 12 02:14:29 CET 2009
85 root 1.206 - fix result status documentation of aio_copy, aio_move.
86 root 1.207 - speed up object creation considerably by avoiding
87     hash lookups.
88 root 1.206
89 root 1.205 3.3 Wed Aug 5 13:52:58 CEST 2009
90 root 1.202 - use common::sense.
91     - use common schmorp.h header.
92     - allow integers (file descriptors) in addition to file handles.
93 root 1.203 - take advantage of linux' eventfd (but it seems slower on smp?).
94 root 1.204 - use poll not select on posix platforms.
95 root 1.202
96 root 1.201 3.261 Wed Jul 1 10:11:51 CEST 2009
97 root 1.207 - more 0S X workarounds (patch by Tokuhiro Matsuno).
98 root 1.200
99 root 1.199 3.26 Tue Jun 30 09:33:26 CEST 2009
100 root 1.207 - 0S X of course claims to be posix 2008 but lacks posix_fadvise.
101     try to work around this horribly broken OS in a somewhat hackish
102     way. might help other os's too.
103 root 1.199
104 root 1.198 3.25 Sat Jun 27 05:18:26 CEST 2009
105 root 1.197 - added IO::AIO::fadvise and IO::AIO::sendfile.
106 root 1.195 - (libeio) replaced quicksort+insertion sort by a tuned radix
107     sort + insertion sort, resulting in comparable runtime (usually
108     faster) to the old version, but without any ill side effects on
109     degenerated (for quicksort) data.
110     - (libeio) correctly sort dirs by inodes if we have perfect type
111 root 1.194 knowledge and DIRS_FIRST is used.
112 root 1.195 - (libeio) internally the wrong DT_* constants were used, but no
113     known system has differing EIO_DT_*/DT_* values, so not an issue.
114     - removed a (harmless) assert that was left over on the code
115     but should not have been.
116 root 1.196 - use more correct types (change IO length from IV to VAL64,
117     which makes a difference on systems without 64 bit perls).
118 root 1.194
119 root 1.193 3.23 Sat Jun 13 16:57:58 CEST 2009
120     - fix off-by-one bug in aio_readdir that was introduced in the
121     rushed 3.22 release.
122    
123 root 1.192 3.22 Sat Jun 13 15:32:40 CEST 2009
124 root 1.191 - speed up readdirx sort algorithm slightly.
125 root 1.192 - bin/treescan was missing from distro tarball.
126 root 1.191
127 root 1.190 3.21 Fri Jun 12 18:45:53 CEST 2009
128 root 1.187 - new options --dirs and --files for treescan.
129 root 1.188 - install bin/treescan by default.
130 root 1.189 - (libeio) aio_readdir can now be cancelled while executing.
131 root 1.190 - fix a printf format string for 64 bit systems (could lead
132     to problems on big endian 64 bit systems).
133     - do not use qsort() but our own algorithm: glibc initialises
134     the whole locale and I/O subsystem inside qsort, causing
135     a stack overflow on 32 bit machines. The new sort uses much less
136     stack and is more than twice as fast in typical situations.
137 root 1.187
138 root 1.186 3.2 Sun Jun 7 20:30:05 CEST 2009
139 root 1.182 - (libeio) pwrite emulation was even more flawed than intended and did
140     not restore the file offset.
141 root 1.183 - add aio_readdirx, which can return inode and filetype and sort
142     the names in various ways.
143 root 1.182 - unfortunately, utime, chmod, chown on an open file that has just
144     been written can easily block, which caused aio_copy to block the
145     process. no more!
146     - no longer rely on dst path in aio_copy when futime is available.
147    
148 root 1.181 3.19 Tue Apr 21 22:05:21 CEST 2009
149     - more perl 5.10 workarounds for aio_read and write.
150     - aio_write no longer modifies the sv (if possible).
151     - aio_read now works correctly with magic values.
152    
153 root 1.180 3.18 Sun Apr 19 21:17:32 CEST 2009
154 root 1.179 - better diagnostics when some aio_* functions get passed an illegal fh.
155 root 1.180 - try to avoid crashes due to incompatible 5.10 API changes. grmbl.
156 root 1.178
157 root 1.177 3.17 Thu Nov 20 08:45:36 CET 2008
158 root 1.176 - (libeio) added aio_sync_file_range (untested).
159 root 1.177 - add aio_busy to @IO::AIO::AIO_REQ.
160 root 1.175
161 root 1.174 3.16 Wed Oct 22 18:28:01 CEST 2008
162 root 1.173 - use SvREFCNT_inc instead of SvREFCNT_inc_NN in a non-speed critical
163     part to improve portability to perl 5.8 (reported by szymon).
164    
165 root 1.172 3.15 Mon Oct 13 00:39:55 CEST 2008
166 root 1.171 - automatic removal of feeders was broken.
167     - (libeio) use a more robust method to detect whether a feeder
168     has added something to the group or not.
169    
170 root 1.170 3.1 Thu Oct 2 13:34:40 CEST 2008
171 root 1.168 - pre-deref the passed callback object, for increased speed
172     and decreased memory usage.
173 root 1.167 - call on_next_submit callback even for aio_group - impact unknown,
174 root 1.166 but seems more correct.
175 root 1.168 - $req->cb now returns the original callback.
176 root 1.166 - (libeio) pass EIO_GROUP/aio_group requests through the queue without
177     requiring a thread switch.
178 root 1.169 - (libeio) status code of aio_futime and aio_utime was always passed 0.
179 root 1.166 - do some other ยต-optimisations.
180    
181 root 1.165 3.07 Sat Aug 2 16:06:13 CEST 2008
182     - do not include LIBS in autoconf tests.
183    
184 root 1.164 3.06 Tue Jul 15 12:41:32 CEST 2008
185 root 1.162 - move preadwritelock definition before it's first reference,
186 root 1.164 to make it compile again on broken platforms (they still exist)
187     or badly cofngiured perls (redhat...), reported by Rob Bloodgood.
188 root 1.162
189 root 1.161 3.05 Thu Jun 19 23:23:52 CEST 2008
190 root 1.160 - work around perl overriding readdir etc. with thread-unsafe
191 root 1.161 (sic!) versions.
192 root 1.160
193 root 1.159 3.04 Wed Jun 18 01:35:38 CEST 2008
194     - (libeio) fix eio_mknod, which confused it's arguments.
195 root 1.158 - (libeio) do not use readdir_r, as Ulrich Drepper pointed out that this
196     is stupid.
197 root 1.159 - (libeio) fix eio__readahead prototype, patch by Jost Krieger.
198     - (libeio) fix a bug that could potentially cause IO::AIO
199     not to get initialised properly.
200 root 1.158
201 root 1.157 3.03 Thu May 29 05:33:30 CEST 2008
202 root 1.153 - (libeio) correctly call pthread_attr_destroy ().
203 root 1.155 - (libeio) work around broken bsd headers once more.
204 root 1.154 - reduce shared library size again by not including wrappers.
205 root 1.156 - max_outstanding could cause poll to enter a busy-waiting loop.
206     - document the new IO::AIO::poll_cb result value.
207 root 1.153
208 root 1.152 3.02 Mon May 12 02:32:02 CEST 2008
209 root 1.150 - fix a memory leak on aio_readlink.
210     - bring back working fchmod.
211 root 1.151 - nop and busy now set result to 0.
212     - set errno to ENOMEM when allocation fails.
213 root 1.150
214 root 1.149 3.01 Sun May 11 03:07:03 CEST 2008
215     - (libeio) make it compile on systems without readahead or readdir_r.
216 root 1.148 - (libeio) improve configure check for readahead availability.
217     - do not try to link against -lrt.
218 root 1.147 - use a separate configure script for IO::AIO (not the libeio one).
219    
220 root 1.146 3.0 Sun May 11 00:57:14 CEST 2008
221 root 1.145 - added bin/treescan to the distribution.
222     - switched to using libeio.
223     - LOTS OF INCOMPATIBLE CHANGES:
224     - remove signal functionality, it is not worth the effort.
225     - max_outstanding no longer returns the previous number of requests.
226     - poll_cb no longer returns number of requests.
227 root 1.143
228 root 1.142 2.62 Sat Apr 26 13:59:33 CEST 2008
229 root 1.141 - port to solaris perls configured for old posix
230     (analysed by Jost Krieger).
231 root 1.142 - keep a reference to the perl filehandle object in aio_close,
232     so it doesn't get closed prematurely, leading to ugly races.
233 root 1.141
234 root 1.140 2.61 Wed Apr 16 18:45:02 CEST 2008
235 root 1.137 - fix treescan output duplication and improve output ordering.
236     also display files given on the commandline.
237 root 1.140 - use a different algorithm for aio_close that is faster
238     and probably has even lower chances of blocking.
239 root 1.138 - do our own stack memory management for threads - linux
240     allocates outrageous amounts of VM (not so bad unless you
241     use mlockall...), which severely limits the number of threads
242 root 1.139 on 32-bit arches: stack size is the larger of PTHREAD_STACK_MIN
243     and 4096 * sizeof (long) (usually this is 16..64k).
244 root 1.137
245 root 1.136 2.6 Sun Mar 30 08:28:11 CEST 2008
246 root 1.134 - added aio_sync.
247 root 1.135 - added aio_pathsync.
248 root 1.136 - fix prototypes of (void) functions.
249 root 1.134
250 root 1.133 2.51 Sat Oct 6 16:04:54 CEST 2007
251     - perlio isn't generally threadsafe, so aio_close could not work reliably.
252     aio_close now tries a safe hack that might not be that asynchronous
253     (see the manpage for details).
254     - discard callback return values as to not grow the stack endlessly
255     when poll_cb handles many requests without returning.
256     - minor code cleanups.
257    
258 root 1.132 2.5 Thu Oct 4 14:49:08 CEST 2007
259 root 1.131 - replaced _fd2fh with faster xs code.
260     - aio_close will now try to do "the right thing" and thus might
261     work sensibly for the very first time.
262    
263 root 1.130 2.41 Mon Sep 24 21:28:21 CEST 2007
264 root 1.129 - after fork, invest some work to make sure that the poll_fileno
265     stays stable (by dup2'ing the new fd over the old one), to make
266     it easier for programs/libs that don't control their forking
267     behaviour and cannot recreate their watchers.
268    
269 root 1.128 2.4 Sun Aug 5 18:44:22 CEST 2007
270 root 1.127 - add aio_truncate, aio_chmod, aio_chown, aio_utime (linux
271     successfully demonstrated that you can block on futimes...).
272 root 1.124 - allow undef as fileoffset for aio_read/write and use read/write(2)
273     internally (useful for sockets or O_APPEND handles).
274 root 1.126 - allow undef for length in aio_write.
275     - negative dataoffsets work as expected now in aio_read/aio_write.
276 root 1.124 - use NV instead of UV for 32 bit perls and file offsets, as NVs
277 root 1.125 have a larger range then.
278 root 1.120 - shared code between BDB and IO::AIO.
279 root 1.127 - aio_busy was completely broken. now fixed.
280     - readahead emulation now returns something.
281 root 1.121 - correctly set errno to ENOSYS on unimplemented functions
282     (should never happen, though).
283 root 1.127 - large changes to make it partially compile and run on win32,
284     but win32 lacks too much functionality, and perl overrides way
285     too many functions with crashing versions.
286 root 1.120
287 root 1.119 2.33 Tue Jan 23 23:55:41 CET 2007
288     - fix install path (Andreas J. Koenig).
289    
290 root 1.118 2.32 Mon Jan 22 16:56:23 CET 2007
291 root 1.114 - added aio_rmtree.
292 root 1.115 - wow, aio_mkdir was missing.
293 root 1.116 - aio_load did return undef on error, not -1.
294 root 1.117 - use prefixexp not prefix in autoconf.pm
295     (suggested by ... rt.cpan.org unreachable).
296 root 1.118 - avoid installing autoconf.pm.
297 root 1.114
298 root 1.113 2.31 Sat Jan 6 03:46:02 CET 2007
299 root 1.112 - added aio_load.
300    
301 root 1.111 2.3 Sat Dec 23 05:48:07 CET 2006
302     - fix off-by-one bug in aio_read, causing memory corruption
303     or crashes.
304    
305 root 1.110 2.21 Fri Dec 22 05:03:38 CET 2006
306 root 1.108 - minor doc updates.
307 root 1.107 - minor cleanups.
308     - IO::AIO::poll returns request count.
309 root 1.109 - undocumented and unfinished async-signal-reporting.
310 root 1.107
311 root 1.103 2.2 Tue Oct 31 00:31:00 CET 2006
312 root 1.100 - minor doc updates.
313 root 1.101 - added aio_readlink.
314     - properly zero-terminate aio_read buffer.
315     - fix aio_read/write with nonzero dataoffset.
316 root 1.104 - reduced size of aio request structure.
317 root 1.106 - better diagnostics when pathnames etc. are not byte-encoded;
318 root 1.105 do not leak request in that case, either.
319 root 1.94
320 root 1.99 2.1 Sun Oct 29 02:01:57 CET 2006
321 root 1.98 - INCOMPATIBLE CHANGE: replace IO::AIO::poll_some by
322     IO::AIO::max_poll_reqs and IO::AIO::max_poll_time.
323 root 1.95 - fix a bug in aio_move where it would fail everytime
324     it would have to copy files manually.
325 root 1.98 - doc updates.
326 root 1.94 - start threads only on (very low) demand.
327 root 1.97 - end superfluous threads automatically after 10s idling.
328 root 1.98 - add IO::AIO::max_idle to control this.
329 root 1.94 - some tuning applied to random places.
330 root 1.95 - add aio_mknod.
331 root 1.59
332 root 1.92 2.0 Thu Oct 26 18:27:58 CEST 2006
333 root 1.90 - minor incompatibility: max_outstanding semantics have changed.
334 root 1.86 - major rewrite, consider all functionality EXPERIMENTAL.
335 root 1.68 - aio requests can be cancelled.
336 root 1.81 - callbacks can be (re-)set later.
337 root 1.93 - aio requests can choose between 9 priorities.
338 root 1.83 - add aio_group: aio requests can be grouped
339     into composite requests.
340     - generator interface for groups.
341 root 1.89 - add IO::AIO::poll_some.
342 root 1.72 - major documentation improvements.
343     - very minor bugfixes.
344 root 1.76 - add aio_nop for dummy requests.
345 root 1.84 - add aio_busy mainly for benchmarking and debugging.
346 root 1.79 - use "fast" mutexes on linux.
347 root 1.80 - use dynamic (and larger) buffers instead of
348     putting them onto the stack.
349     - optimise x86 and amd64 a bit.
350     - better error checking when ENOMEM.
351 root 1.85 - hopefully fix mem and dirp leaks on fork.
352 root 1.92 - warn about broken perl malloc.
353 root 1.88 - compiles on cygwin (but pread is broken on cygwin
354     which is not detected by autoconf, so you have to
355     edit autoconf/config.h yourself to enable emulation).
356 root 1.68
357 root 1.67 1.8 Sat Jun 24 22:20:44 CEST 2006
358 root 1.66 - add and/or document aio_rename, aio_link, aio_symlink and aio_move.
359    
360 root 1.65 1.73 Wed Mar 1 22:49:32 CET 2006
361     - codename "jost"
362     - AIX/Solaris(?) aren't being helpful again, hardcode a value
363     for NAME_MAX and drive with your eyes closed (reported by
364     wcooley@nakedape.cc).
365 root 1.63
366 root 1.62 1.72 Thu Feb 2 00:40:44 CET 2006
367 root 1.61 - another minor bug in aio_scandir, again, the callback was called
368     twice when the directory can't be stat'ed.
369    
370 root 1.60 1.71 Mon Dec 26 20:20:03 CET 2005
371     - grr, another minor bug in aio_scandir, this time resulting
372     in a runtime error.
373    
374 root 1.59 1.7 Mon Dec 26 19:29:48 CET 2005
375 root 1.58 - aio_scandir errornously called callback twice in some cases.
376 root 1.57 - added AnyEvent example.
377    
378 root 1.55 1.61 Wed Sep 7 19:40:42 CEST 2005
379 root 1.54 - no longer include $Config{libs}, as distros include too much
380 root 1.56 garbage in there that is not installed on typical systems
381 root 1.54 (for example, debian links perl against -lgdbm and many more
382     libraries despite perl not needing it, slowing down startup and
383     wasting memory).
384    
385 root 1.53 1.6 Tue Aug 30 17:44:44 CEST 2005
386     - added aio_readdir, aio_scandir.
387 root 1.51 - added aio_sendfile, including sendfile emulation when sendfile
388     isn't available. Linux, FreeBSD and HP-UX might work (sendfilev
389     support is unavailable on my solaris 8 machine, but preliminary
390     code is there. What's lacking is configury stuff and testing...).
391 root 1.46
392 root 1.44 1.5 Sat Aug 20 02:32:19 CEST 2005
393 root 1.51 - create the aio threads on demand only (good after forking).
394 root 1.41 - somebody nagged about C89 compatibility, so this release should
395 root 1.42 be C89 compatible, but no guarantees for future ones.
396 root 1.43 - abort when the configure script fails.
397 root 1.41
398 root 1.40 1.4 Wed Aug 17 08:07:27 CEST 2005
399 root 1.93 - forgot to recreate the pipe after forking, this could cause
400 root 1.40 deadlocks.
401    
402 root 1.39 1.3 Wed Aug 17 07:25:54 CEST 2005
403 root 1.33 - properly propagate exceptions from callbacks, instead of silently
404     eating them.
405 root 1.38 - use a different fork algorithm that avoids recursive callback
406     invocations and reduces fork latency in busy processes.
407 root 1.37 - fix a bug where the buffer scalar in aio_read got assigned the wrong
408     length after reading.
409     - fix a bug where the child would process some outstanding requests
410     from the parent.
411     - make a copy of the callback scalar, to avoid some very uncommon
412     (but valid) usages where the callback scalar changes.
413     - the callback was never freed in aio_read/aio_write.
414 root 1.38 - aio_read/aio_write will now set the readonly flag on the data
415     scalar for better error reporting.
416 root 1.33
417 root 1.32 1.2 Wed Aug 17 01:22:58 CEST 2005
418     - verified on cygwin, linux/amd64+ia32+alpha, solaris.
419 root 1.31 - use SvPVbyte for filenames now. You *need* to encode your strings to
420     the external filename encoding first.
421 root 1.32 - fix the bug where filehandles could leak (again).
422 root 1.31 - clarify freebsd situation: make it work and tell me how, or go away
423     with your underdocumented, broken and outdated OS.
424     - fork'ing should now be officially supported (where linux and
425     posix contradict each other, I followed posix).
426 root 1.32 - only call read() once per poll, not twice (speedup).
427     - new functions: aio_rmdir, aio_symlink.
428 root 1.31 - force callback arguments to be undef or a reference, for better
429     error catching.
430 root 1.1
431 root 1.29 1.1 Sun Aug 7 05:27:23 CEST 2005
432 root 1.25 - added configure script to detect availability of some calls.
433 root 1.27 (imperfect, as we cannot detect things like -lrt due to missing
434 root 1.23 feedback yet).
435 root 1.27 - emulate fdatasync via fsync, pread/pwrite via unsafe read/write
436     and readahead via manual reading on platforms lacking those.
437 root 1.19 - ported t/03_errors.t+framework by Brad Fitzpatrick
438     from Linux::AIO.
439 root 1.18 - removed XOPEN_SOURCE because stupid solaris 9 doesn't
440     compile with it enabled. Probably breaks others. Oh well.
441 root 1.24 - try to be more careful with errno on non-threaded perls.
442 root 1.26 - cygwins perl insisted on a matching open mode when morphing
443     the fd to an fh.
444 root 1.28 - convert sv's to "byte" encoding in aio_read/aio_write. Might
445     do that for pathnames, too, in the future, so make sure you
446     properly encode your pathnames.
447 root 1.18
448 root 1.17 1.0 Fri Jul 22 10:43:30 CEST 2005
449     - aio_open did not reliably deliver (open) filehandles.
450 root 1.16 - all aio_*-functions keep a reference to the filehandle so
451     it doesn't go away while the aio requests is working on it.
452     - disable warnings in AIO.pm.
453    
454 root 1.15 0.9 Wed Jul 20 23:55:04 CEST 2005
455     - allow recursive calls to poll_cb, use less locking calls, too.
456     - fix the Gtk2-example in the SYNOPSIS.
457 root 1.14 - use pread/pwrite not pread64/pwrite64. this was simply a leftover
458     from Linux::AIO.
459     (found by compiling on cygwin. Unfortunately, cygwin declares but
460     does not implement pread/pwrite).
461     - only include <sys/syscall.h> on linux.
462    
463 root 1.13 0.5 Tue Jul 12 13:03:09 CEST 2005
464 root 1.12 - removed #include <endian.h>, it's not portable, and we don't
465     need it anyway.
466     - link against -lrt, as it might contain goodies such as fdatasync,
467     and often aio_read, which we do not use yet, but it shouldn't hurt.
468    
469 root 1.11 0.4 Mon Jul 11 05:28:25 CEST 2005
470 root 1.9 - added IO::AIO::flush, IO::AIO::poll.
471 root 1.10 - make callback argument optional for all calls.
472 root 1.8
473 root 1.7 0.3 Mon Jul 11 01:42:37 CEST 2005
474 root 1.5 - restructured manpage.
475 root 1.7 - added SYNOPSIS with examples for Event, Glib, Tk.
476     - remove explicit context support so I don't have to maintain
477     it for threaded perls (i.e. it should work now :).
478 root 1.5
479 root 1.4 0.2 Sun Jul 10 22:57:12 CEST 2005
480 root 1.2 - return immediately from poll_wait if nreqs==0.
481     - get rid of the request pipe and use faster thread-thread
482 root 1.3 communications for most requests and responses.
483 root 1.2
484 root 1.1 0.1
485     - cloned from Linux::AIO, which is very similar.
486