On 2011-04-07 16:17:43 +0300, Torarin said:

2011/4/7 Jonas Drewsen <jdrew...@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.

Reply via email to