With respect to async IO (regretfully I get to see a lot of this at $job): Each operation can be async, or sync, with a similar API. There should be enough hooks to be able to wait on a specific operation happenning on a stream, any operation on a stream, any operation on a group of streams, and any operation on any stream.
The resulting set of operations should be optionally available, as this is one of the biggest sources of boilerplate in posix aio in C. aio_suspend (or a wrapper on top of it) should probably be the event loops default idle loop, and it should keep a flag raised such that if the aio event loop wrapper knows that an event that was not waited on finished, the user code can check on that easily. A possiblity for a unified AIO/SIO interface could be that each IO op returns an operation handle, and you can ask that handle about it's status (running, finished, error), get it's results from the handle, and also ask it to block. This could have a high overhead due to storage creation, but it's generally a pretty flexible and portable abstraction. On Fri, Mar 03, 2006 at 11:27:05 -0800, Allison Randal wrote: > We're going to try something a little different. With Chip's blessing I've > written a very early draft of the PDD for I/O (not numbered yet). The > attached PDD isn't > a completed document with Chip's seal of approval, it's a seed for > discussion. > > What I need from you all is comments. What's missing? What's inaccurate? > What's accurate for the current state of Parrot, but is something you always > intended to > write out later? What thoughts have you had on how the I/O subsystem should > work? All contributions cheerfully welcomed, from a single sentence to > several pages of > text. > > Chip won't be making design decisions during the conversation. He may not > even participate much, since part of the point is to split the work into > parallel tasks so > we can get more done than is humanly possible for one person. I'll use the > discussion to write up a more complete PDD (probably with a few alternatives > written in), > and then work with Chip to review/revise it. > > Thanks, > Allison > -- () Yuval Kogman <[EMAIL PROTECTED]> 0xEBD27418 perl hacker & /\ kung foo master: /me sushi-spin-kicks : neeyah!!!!!!!!!!!!!!!!!!!!
pgp8tEwohagCA.pgp
Description: PGP signature