------art_56069_13458517.1147176120701
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Well, I don't actually know anything about the innards of Twisted, but I'll
try to find out. The "reactor" pattern has been around for a while. As I
recall it started getting more currency a few years ago when the whole
"C10K" issue was being discussed. To me, it's one of the ways of recognizing
that specific issues of blocking vs. nonblocking i/o, threaded vs.
nonthreaded and all the rest of the controversial stuff are really low-level
issues. And they shouldn't pollute the application-level domain where most
programmers work, because they add no value there. What the reactor pattern
says is: "if you're willing to think of a network protocol as a state
machine rather than a conversation, then I can enable to you process far
more users in much less time."

And for what it's worth, the reactor model may not be the best way to do
Windows servers, because unlike any mainstream Unix flavor, Windows actually
has excellent async i/o. We're currently in the middle of rewriting the
Windows side of EventMachine to use async instead of nonblocking i/o.

On 5/9/06, Giles Bowkett <gilesb / gmail.com> wrote:
>
> Francis -- just out of curiousity -- is the Reactor model in
> Eventmachine similar to what happens inside the Twisted networking
> framework in Python?
>
> --
> Giles Bowkett
> http://www.gilesgoatboy.org
>
>

------art_56069_13458517.1147176120701--