[GSoC Proposal draft] High-Level Networking
Max Klyga
max.klyga at gmail.com
Thu Apr 7 11:36:57 PDT 2011
On 2011-04-07 16:17:43 +0300, Torarin said:
> 2011/4/7 Jonas Drewsen <jdrewsen at nospam.com>:
>> On 07/04/11 00.32, Max Klyga wrote:
>>> snip
>>
>> Seems good to me. Some comments:
>>
>> You mention that a reactor will probably be used for implementing the
>> proactor. On windows it really doesn't make sense to do this it think.
>> Instead overlapped IO should be used since it maps very well with the
>> proactor pattern. I also suggest that you specify which OSes you will make
>> support for. If that is only e.g. linux then building on reactors is the
>> right way to go as you've planned.
>>
>> /Jonas
>>
>
> Indeed it looks good! You can use the reactor pattern on Windows as
> well, but several sources say that overlapped IO is more efficient,
> and it probably is cleaner. But it's still nice to have a reactor that
> wraps select and friends, and then specialize the individual proactors
> as needed. Was that what you were thinking, Max?
>
> Torarin
I plan to start with a Mac implementation, because that's what I use
most of the time, but I have a Windows box too and can install Linux on
virtual machine, if that will be needed.
Yes, I had an idea to implement reactor and proactor the way, user may
swap implementations, e.g. portable reactor based on select and
platform specific one using efficient implementation for that platform.
This approach is used in Twisted python web-server (It's licence states
that it needs attribution only on reuse of descent amounts of code, so
it might be a good idea to peek for some platform specific details).
Windows overlapped I/O allows to implement proactor on top of it
without any additional layers, but reactor can be implemented on of
overlapped I/O too.
More information about the Digitalmars-d
mailing list