From a4b6b1385a5e0ba094b99608a6a117376beb4d31 Mon Sep 17 00:00:00 2001 From: Talha Malik Date: Wed, 16 Oct 2019 10:43:51 -0400 Subject: [PATCH 1/2] Fixes #2133 --- gunicorn/workers/base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gunicorn/workers/base.py b/gunicorn/workers/base.py index f95994bc..81c0c616 100644 --- a/gunicorn/workers/base.py +++ b/gunicorn/workers/base.py @@ -116,6 +116,8 @@ class Worker(object): self.init_signals() + self.load_wsgi() + # start the reloader if self.cfg.reload: def changed(fname): @@ -130,7 +132,6 @@ class Worker(object): callback=changed) self.reloader.start() - self.load_wsgi() self.cfg.post_worker_init(self) # Enter main run loop From 51a4afd7ef2c0941047f40d7ec79f6344fa47528 Mon Sep 17 00:00:00 2001 From: Talha Malik Date: Thu, 17 Oct 2019 09:50:17 -0400 Subject: [PATCH 2/2] Remove locking in polling reloader --- THANKS | 1 + gunicorn/reloader.py | 7 ++----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/THANKS b/THANKS index 2c2a6de5..04e0f52b 100644 --- a/THANKS +++ b/THANKS @@ -163,6 +163,7 @@ Stephen DiCato Stephen Holsapple Steven Cummings Sébastien Fievet +Talha Malik TedWantsMore Thomas Grainger Thomas Steinacher diff --git a/gunicorn/reloader.py b/gunicorn/reloader.py index acfc2f8f..d00be2bf 100644 --- a/gunicorn/reloader.py +++ b/gunicorn/reloader.py @@ -19,13 +19,11 @@ class Reloader(threading.Thread): super().__init__() self.setDaemon(True) self._extra_files = set(extra_files or ()) - self._extra_files_lock = threading.RLock() self._interval = interval self._callback = callback def add_extra_file(self, filename): - with self._extra_files_lock: - self._extra_files.add(filename) + self._extra_files.add(filename) def get_files(self): fnames = [ @@ -34,8 +32,7 @@ class Reloader(threading.Thread): if getattr(module, '__file__', None) ] - with self._extra_files_lock: - fnames.extend(self._extra_files) + fnames.extend(self._extra_files) return fnames