From 608e6eb2959c6e56e5c702ca0d15fa0e6c2eef16 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Wed, 2 Apr 2014 09:47:18 -0700 Subject: [PATCH] Added an explanatory comment. Refs #22017 --- django/utils/autoreload.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/django/utils/autoreload.py b/django/utils/autoreload.py index 119bebb148..3e38ef0ff1 100644 --- a/django/utils/autoreload.py +++ b/django/utils/autoreload.py @@ -81,6 +81,9 @@ def gen_filenames(): Yields a generator over filenames referenced in sys.modules and translation files. """ + # N.B. ``list(...)`` is needed, because this runs in parallel with + # application code which might be mutating ``sys.modules``, and this will + # fail with RuntimeError: cannot mutate dictionary while iterating filenames = [filename.__file__ for filename in list(sys.modules.values()) if hasattr(filename, '__file__')]