[Python-Dev] Twisted Isn't Specific (was Re: Trial balloon: microthreads library in stdlib)

Phillip J. Eby pje at telecommunity.com
Thu Feb 15 03:00:12 CET 2007


At 01:31 PM 2/15/2007 +1300, Greg Ewing wrote:
>To my mind, there shouldn't be a "reactor" object
>exposed to the application at all. There should just
>be functions for setting up callbacks. The choice of
>implementation should be made somewhere deep inside
>the library, based on what platform is being used.

*shudder*.  I, on the other hand, prefer to assume that there is no one 
"top level" and certainly no requirement for a single event loop or 
reactor.  peak.events, for example, lets you have multiple event loops 
running in the same or different threads.  One of these can be Twisted's 
reactor, if you like, but the framework doesn't impose this singleton-ness 
on you.

(IIUC, Twisted uses a singleton for at least two fairly good reasons: ease 
of programming, and the fact that certain platforms demand it for 
performance reasons.  I just don't happen to agree that this limitation 
should be applied across *all* platforms.  And there are good solutions for 
context-specific pseudo-singletons to address the API issue, although they 
might not be as high-performance as Twisted applications might 
prefer.  Everything's a trade-off.)



More information about the Python-Dev mailing list