> I have need of an AIO subsystem and have been thinking about how I > might do a partial Posix AIO implementation under FreeBSD. Has > anyone else given this any thoughts? > > Would this best be done via a user side library, via new system > calls, via a mix of both, etc. Any thoughts on this would be greatly > appreciated. I think the correct thing to do is create an alternate call gate and aiowait/aiocancel calls, plus kernel context records, and add a flag to each system call to indicate that it is potentially blocking or not. Then "aioread" is "read using async call gate" and "aiowrite" is "write using async call gate". The reasoning is that things other than read/write can also block, and you might want to trade the block for queue + context switch (the POSIX AIO was originally for support of SunOS LWP ALA the University of Washington paper on "SPARC Register Windows and User Space Threading"). This would also let you write "team" in one process... 8-). Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.