Browse Source

Clear up TLS after request processing

Ralfp 12 years ago
parent
commit
2b13dfaf11
3 changed files with 13 additions and 0 deletions
  1. 6 0
      misago/middleware/threading.py
  2. 1 0
      misago/settings_base.py
  3. 6 0
      misago/thread.py

+ 6 - 0
misago/middleware/threading.py

@@ -0,0 +1,6 @@
+from misago.thread import clear
+
+class ThreadMiddleware(object):
+    def process_response(self, request, response):
+        clear()
+        return response

+ 1 - 0
misago/settings_base.py

@@ -105,6 +105,7 @@ JINJA2_AUTOESCAPE = True
 
 # List of application middlewares
 MIDDLEWARE_CLASSES = (
+    'misago.middleware.threading.ThreadMiddleware',
     'misago.middleware.stopwatch.StopwatchMiddleware',
     'misago.middleware.heartbeat.HeartbeatMiddleware',
     'debug_toolbar.middleware.DebugToolbarMiddleware',

+ 6 - 0
misago/thread.py

@@ -4,3 +4,9 @@ _thread_local = threading.local()
 
 def local():
     return _thread_local
+
+
+def clear():
+    for attr in _thread_local.__dict__.keys():
+        if attr[0] != '_':
+            del _thread_local.__dict__[attr]