On 02/23/2011 07:55 AM, Nick Wellnhofer wrote:
On 21/02/2011 20:29, Kevin Tew wrote:
I've just pushed tewk/select, which contains a non-blocking support for
linux.
I really want to see rakudo get some non-blocking IO features, hence I
started with parrot.
I'd like to merge this sooner than later,
So constructive patches, commits, pull requests to tewk/select are
welcome.
I like the update/remove methods because they work with other event
mechanisms, too. The getfd, getmaxfd and get_data_hash are specific to
select on UNIX, but afaics they're only needed for completeness and
testing.
The ability to associate arbitrary data PMCs with an fd also seems
useful. But how am I supposed to get the FileHandle PMC from the
returned data PMC? It might be better to introduce an additional
"Event" PMC type that contains the FileHandle, the r/w/e flags, and
user-defined data. Then you would only have to pass this PMC to
update/remove. See the event struct in libevent, for example.
I like the idea of an Event PMC.
I tried to keep the interface very very simple.
The idea would be to call update with an array [FileDescriptorPMC,
USERDATA ... ], an Event PMC, or any user defined PMC.
Maybe I should add a 3 arg update(filedescriptor, user_data, rwe_flags)
that automatically builds a [FileDescriptorPMC, userdata] array and puts
it in the fd_map.
Kevin
Nick
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev