[Twisted-Python] how to change default reactor of twisted.internet?

Laurens Van Houtven _ at lvh.cc
Wed Dec 12 08:10:02 MST 2012


You should update your twisted install; it'll pick a better default then
"select" on most platforms.

For installing other reactors, see individual reactor's documentation, e.g:

https://twistedmatrix.com/documents/current/api/twisted.internet.cfreactor.html

(because individual reactors may require special magic)


On Wed, Dec 12, 2012 at 3:52 PM, Anil KARADAG <akaradag at netas.com.tr> wrote:

> Hi all,****
>
> ** **
>
> ** **
>
> I have a question about reactor of “twisted.internet” module. I found
> below;****
>
> ** **
>
> ** **
>
> The default reactor is “select”;****
>
> ** **
>
> [root at karadag internet]# pwd****
>
> *
> /usr/lib/python2.6/site-packages/Twisted-10.0.0-py2.6-linux-x86_64.egg/twisted/internet
> *
>
> *[root at karadag internet]# cat reactor.py*
>
> # Copyright (c) 2001-2008 Twisted Matrix Laboratories.****
>
> # See LICENSE for details.****
>
> ** **
>
> """****
>
> The reactor is the Twisted event loop within Twisted, the loop which drives
> ****
>
> applications using Twisted. The reactor provides APIs for networking,****
>
> threading, dispatching events, and more.****
>
> ** **
>
> The default reactor is based on C{select(2)} and will be installed if this
> ****
>
> module is imported without another reactor being explicitly installed.****
>
> Regardless of which reactor is installed, importing this module is the
> correct****
>
> way to get a reference to it.****
>
> ** **
>
> New application code should prefer to pass and accept the reactor as a****
>
> parameter where it is needed, rather than relying on being able to import
> this****
>
> module to get a reference.  This simplifies unit testing and may make it
> easier****
>
> to one day support multiple reactors (as a performance enhancement), though
> ****
>
> this is not currently possible.****
>
> ** **
>
> @see: L{IReactorCore<twisted.internet.interfaces.IReactorCore>}****
>
> @see: L{IReactorTime<twisted.internet.interfaces.IReactorTime>}****
>
> @see: L{IReactorProcess<twisted.internet.interfaces.IReactorProcess>}****
>
> @see: L{IReactorTCP<twisted.internet.interfaces.IReactorTCP>}****
>
> @see: L{IReactorSSL<twisted.internet.interfaces.IReactorSSL>}****
>
> @see: L{IReactorUDP<twisted.internet.interfaces.IReactorUDP>}****
>
> @see: L{IReactorMulticast<twisted.internet.interfaces.IReactorMulticast>}*
> ***
>
> @see: L{IReactorUNIX<twisted.internet.interfaces.IReactorUNIX>}****
>
> @see:
> L{IReactorUNIXDatagram<twisted.internet.interfaces.IReactorUNIXDatagram>}*
> ***
>
> @see: L{IReactorFDSet<twisted.internet.interfaces.IReactorFDSet>}****
>
> @see: L{IReactorThreads<twisted.internet.interfaces.IReactorThreads>}****
>
> @see: L{IReactorArbitrary<twisted.internet.interfaces.IReactorArbitrary>}*
> ***
>
> @see:
> L{IReactorPluggableResolver<twisted.internet.interfaces.IReactorPluggableResolver>}
> ****
>
> """****
>
> ** **
>
> *import sys*
>
> *del sys.modules['twisted.internet.reactor']*
>
> *from twisted.internet import selectreactor*
>
> *selectreactor.install()*
>
> ** **
>
> ** **
>
> ---------------------------------------------------------------****
>
> ** **
>
> ** **
>
> [root at karadag internet]# twistd --help****
>
> Usage: twistd [options]****
>
> Options:****
>
> …****
>
> ** **
>
> *  -r, --reactor=         Which reactor to use (see --help-reactors for a
> list of*
>
> *                         possibilities)*
>
>       --help             Display this help and exit.****
>
> ** **
>
> twistd reads a twisted.application.service.Application out of a file and
> runs****
>
> it.****
>
> Commands:****
>
>     ftp                          An FTP server.****
>
>     telnet                       A simple, telnet-based remote debugging**
> **
>
>                                  service.****
>
>     socks                        A SOCKSv4 proxy service.****
>
>     manhole-old                  An interactive remote debugger service.**
> **
>
>     portforward                  A simple port-forwarder.****
>
>     web                          A general-purpose web server which can
> serve****
>
>                                  from a filesystem or application resource.
> ****
>
>     inetd                        An inetd(8) replacement.****
>
>     news                         A news server.****
>
>     wokkel-component-server      An XMPP Component Server****
>
>     xmpp-router                  An XMPP Router server****
>
>     words                        A modern words server****
>
>     toc                          An AIM TOC service.****
>
>     dns                          A domain name server.****
>
>     mail                         An email service****
>
>     manhole                      An interactive remote debugger service***
> *
>
>                                  accessible via telnet and ssh and
> providing****
>
>                                  syntax coloring and basic line editing***
> *
>
>                                  functionality.****
>
>     conch                        A Conch SSH service.****
>
> ** **
>
> ** **
>
> thanks****
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
>


-- 
cheers
lvh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20121212/b213bc31/attachment.html>


More information about the Twisted-Python mailing list