diff --git a/channels/handler.py b/channels/handler.py index b9664f3..69ed8a3 100644 --- a/channels/handler.py +++ b/channels/handler.py @@ -7,7 +7,6 @@ import sys import time import traceback from io import BytesIO -from threading import Lock from django import http from django.conf import settings @@ -168,20 +167,16 @@ class AsgiHandler(base.BaseHandler): a HTTP request) """ - initLock = Lock() request_class = AsgiRequest # Size to chunk response bodies into for multiple response messages chunk_size = 512 * 1024 + def __init__(self, *args, **kwargs): + super(AsgiHandler, self).__init__(*args, **kwargs) + self.load_middleware() + def __call__(self, message): - # Set up middleware if needed. We couldn't do this earlier, because - # settings weren't available. - if self._request_middleware is None: - with self.initLock: - # Check that middleware is still uninitialized. - if self._request_middleware is None: - self.load_middleware() # Set script prefix from message root_path set_script_prefix(message.get('root_path', '')) signals.request_started.send(sender=self.__class__, message=message)