diff -r 6ac3667706be roundup/cgi/wsgi_handler.py --- a/roundup/cgi/wsgi_handler.py Tue Apr 26 17:22:33 2022 -0400 +++ b/roundup/cgi/wsgi_handler.py Fri Apr 29 11:09:07 2022 +0200 @@ -84,7 +84,7 @@ tracker_home=home) else: self.translator = None - self.preload() + self.tracker = roundup.instance.open(self.home, not self.debug) def __call__(self, environ, start_response): """Initialize with `apache.Request` object""" @@ -116,25 +116,14 @@ else: form = BinaryFieldStorage(fp=environ['wsgi.input'], environ=environ) - with self.get_tracker() as tracker: - client = tracker.Client(tracker, request, environ, form, - self.translator) - try: - client.main() - except roundup.cgi.client.NotFound: - request.start_response([('Content-Type', 'text/html')], 404) - request.wfile.write(s2b('Not found: %s' % - html_escape(client.path))) + client = self.tracker.Client(self.tracker, request, environ, form, + self.translator) + try: + client.main() + except roundup.cgi.client.NotFound: + request.start_response([('Content-Type', 'text/html')], 404) + request.wfile.write(s2b('Not found: %s' % + html_escape(client.path))) # all body data has been written using wfile return [] - - def preload(self): - """ Trigger pre-loading of imports and templates """ - with self.get_tracker(): - pass - - @contextmanager - def get_tracker(self): - # get a new instance for each request - yield roundup.instance.open(self.home, not self.debug)