Hi all,

 

 

I have a question about reactor of “twisted.internet” module. I found below;

 

 

The default reactor is “select”;

 

[root@karadag internet]# pwd

/usr/lib/python2.6/site-packages/Twisted-10.0.0-py2.6-linux-x86_64.egg/twisted/internet

[root@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@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