Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 1933

Show
Ignore:
Timestamp:
03/26/08 13:45:14
Author:
fumanchu
Message:

Adding a server.nodelay option, and making wsgiserver set TCP_NODELAY by default. See http://www.cmlenz.net/archives/2008/03/python-httplib-performance-problems for the use case.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/_cpserver.py

    r1926 r1933  
    5656    ssl_certificate = None 
    5757    ssl_private_key = None 
     58    nodelay = True 
    5859     
    5960    def __init__(self): 
  • trunk/cherrypy/_cpwsgi.py

    r1867 r1933  
    350350    wsgiserver has been designed to not reference CherryPy in any way, 
    351351    so that it can be used in other frameworks and applications. Therefore, 
    352     we wrap it here, so we can set our own mount points from cherrypy.tree. 
     352    we wrap it here, so we can set our own mount points from cherrypy.tree 
     353    and apply some attributes from config -> cherrypy.server -> wsgiserver. 
    353354    """ 
    354355     
     
    372373                   ) 
    373374        self.protocol = server.protocol_version 
     375        self.nodelay = server.nodelay 
    374376        self.ssl_certificate = server.ssl_certificate 
    375377        self.ssl_private_key = server.ssl_private_key 
  • trunk/cherrypy/wsgiserver/__init__.py

    r1929 r1933  
    11831183    timeout: the timeout in seconds for accepted connections (default 10). 
    11841184     
     1185    nodelay: if True (the default since 3.1), sets the TCP_NODELAY socket 
     1186        option. 
     1187     
    11851188    protocol: the version string to write in the Status-Line of all 
    11861189        HTTP responses. For example, "HTTP/1.1" (the default). This 
     
    12061209    ready = False 
    12071210    _interrupt = None 
     1211     
     1212    nodelay = True 
     1213     
    12081214    ConnectionClass = HTTPConnection 
    12091215    environ = {} 
     
    13481354        self.socket = socket.socket(family, type, proto) 
    13491355        self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
    1350 ##        self.socket.setsockopt(socket.SOL_SOCKET, socket.TCP_NODELAY, 1) 
     1356        if self.nodelay: 
     1357            self.socket.setsockopt(socket.SOL_SOCKET, socket.TCP_NODELAY, 1) 
    13511358        if self.ssl_certificate and self.ssl_private_key: 
    13521359            if SSL is None: 

Hosted by WebFaction

Log in as guest/cpguest to create tickets