Edgewall Software

Ticket #6614: explicit_gc.diff

File explicit_gc.diff, 0.8 KB (added by cboos, 11 months ago)

call gc.collect() after every request

  • trac/web/main.py

     
    390390    finally: 
    391391        if env and not run_once: 
    392392            env.shutdown(threading._get_ident()) 
     393            # Now it's a good time to do some clean-ups 
     394            import gc 
     395            gc.disable() 
     396            gc.set_debug(gc.DEBUG_UNCOLLECTABLE) 
     397            unreachable = gc.collect() 
     398            env.log.info("%d unreachable objects found.", unreachable) 
     399            uncollectable = len(gc.garbage) 
     400            if uncollectable: 
     401                del gc.garbage[:] 
     402                env.log.warn("%d uncollectable objects found.", uncollectable) 
    393403 
    394404def _dispatch_request(req, env, env_error): 
    395405    resp = []