From db5a7495f53015681485861c63fbeab299656c48 Mon Sep 17 00:00:00 2001 From: Randall Leeds Date: Wed, 10 Aug 2011 15:52:18 -0700 Subject: [PATCH] fix unlikely race condition --- greins/app.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/greins/app.py b/greins/app.py index b2b30bd..cdcbcc0 100644 --- a/greins/app.py +++ b/greins/app.py @@ -87,19 +87,19 @@ def load_file(self,cf): # Load all the mount points for r, a in cfg['mounts'].iteritems(): - if not r.startswith('/'): - self.logger.warning("Adding leading '/' to '%s'" % r) - r = '/' + r - if r in self._mounts: - self.logger.warning("Duplicate routes for '%s'" % r) - continue # Capture the handler in a closure def wrap(app): def app_with_env(env, start_response): return app(env, start_response) app_with_env.__name__ = app.__name__ return app_with_env - self._mounts[r] = wrap(a) + wrapped = wrap(a) + if not r.startswith('/'): + self.logger.warning("Adding leading '/' to '%s'" % r) + r = '/' + r + if self._mounts.setdefault(r, wrapped) != wrapped: + self.logger.warning("Duplicate routes for '%s'" % r) + continue # Set up server hooks for hook in self._hooks: