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

Changeset 1449

Show
Ignore:
Timestamp:
11/27/06 13:50:39
Author:
fumanchu
Message:

Now that InternalRedirect? is external to the Request object, there is no need to check Response.timed_out so frequently; once at the end of the request is enough. Updated test_states to test implicit timeout handling without InternalRedirect?.

Files:

Legend:

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

    r1441 r1449  
    6464    def run(self, point): 
    6565        """Execute all registered Hooks (callbacks) for the given point.""" 
    66         if cherrypy.response.timed_out: 
    67             raise cherrypy.TimeoutError() 
    68          
    6966        exc = None 
    7067        hooks = self[point] 
     
    303300        cherrypy.log.access() 
    304301         
     302        if cherrypy.response.timed_out: 
     303            raise cherrypy.TimeoutError() 
     304         
    305305        return cherrypy.response 
    306306     
     
    310310            try: 
    311311                try: 
    312                     if cherrypy.response.timed_out: 
    313                         raise cherrypy.TimeoutError() 
    314                      
    315312                    if self.app is None: 
    316313                        raise cherrypy.NotFound() 
     
    434431            raise cherrypy.HTTPError(413) 
    435432         
     433        # Note that, if headers['Content-Type'] is multipart/*, 
     434        # then forms.file will not exist; instead, each form[key] 
     435        # item will be its own file object, and will be handled 
     436        # by params_from_CGI_form. 
    436437        if forms.file: 
    437438            # request body was a content-type other than form params. 
     
    472473     
    473474    def __set__(self, obj, value): 
    474         if cherrypy.response.timed_out: 
    475             raise cherrypy.TimeoutError() 
    476475        # Convert the given value to an iterable object. 
    477476        if isinstance(value, basestring): 
     
    528527    def finalize(self): 
    529528        """Transform headers (and cookies) into cherrypy.response.header_list.""" 
    530         if self.timed_out: 
    531             raise cherrypy.TimeoutError() 
    532          
    533529        try: 
    534530            code, reason, _ = http.valid_status(self.status) 
  • trunk/cherrypy/test/test_states.py

    r1329 r1449  
    2929                cherrypy.response.timed_out = False 
    3030                return "broken!" 
    31             time.sleep(0.1) 
     31            time.sleep(0.01) 
    3232    block_explicit.exposed = True 
    3333     
    3434    def block_implicit(self): 
    35         raise cherrypy.InternalRedirect("/block_implicit") 
     35        time.sleep(0.5) 
     36        return "response.timeout = %s" % cherrypy.response.timeout 
    3637    block_implicit.exposed = True 
    37     block_implicit._cp_config = {'request.recursive_redirect': True} 
    3838 
    3939cherrypy.tree.mount(Root()) 
    4040cherrypy.config.update({ 
    4141    'environment': 'test_suite', 
    42     'engine.deadlock_poll_freq': 1, 
    43     'response.timeout': 2, 
     42    'engine.deadlock_poll_freq': 0.1, 
     43    'response.timeout': 0.2, 
    4444    }) 
    4545 
     
    209209            # request.close is called async. 
    210210            while cherrypy.engine.servings: 
    211                 time.sleep(0.1) 
     211                time.sleep(0.01) 
    212212             
    213213            # Request a page that explicitly checks itself for deadlock. 

Hosted by WebFaction

Log in as guest/cpguest to create tickets