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

Reply via email to