On 3/31/11 6:35 AM, Max Klyga wrote:
I've been thinking on things I can change in my GSoC proposal to make it
stronger and noticed that currently Phobos does not address asynchronous
I/O of any kind.
A number of threads on thid newsgroup mentioned about this problem or
shown ways other languages address asynchronicity.
I want to ask D community about plans on asynchronicity in Phobos.
Did somenone in Phobos team thought about possible design?
How does asynchronicity stacks with ranges?
What model should D adapt?
etc.
I think that would be a good contribution that would complement Jonas'.
You'll need to discuss cooperation with him and at best Jonas would
agree to become a mentor.
I've posted a couple of weeks earlier how I think that could work with
ranges: the range maintains the asynchronous state and has a queue of
already-available buffers received. The network traffic occurs in a
different thread; the range throws requests over the fence to libcurl
and libcurl throws buffers over the fence back to the range. The range
offers a seemingly synchronous interface:
foreach (line; byLineAsync("http://d-programming-language.org"))
{
... use line ...
}
except that the processing and the fetching of data occur in distinct
threads.
Server-side code such as network servers etc. would also be an
interesting topic. Let me know if you're versed in the likes of libev(ent).
Thanks,
Andrei