[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