From b484e5497d12a11766544d79d320d5953d3a753d Mon Sep 17 00:00:00 2001 From: David Lord Date: Mon, 8 Aug 2022 14:29:56 -0700 Subject: [PATCH] handle unclosed socket resource warning --- CHANGES.rst | 2 ++ src/werkzeug/serving.py | 3 +++ 2 files changed, 5 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index f8a93e512..1eec66a7c 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -19,6 +19,8 @@ Unreleased - ``LocalProxy.__wrapped__`` is always set to the wrapped object when the proxy is unbound, fixing an issue in doctest that would cause it to fail. :issue:`2485` +- Address one ``ResourceWarning`` related to the socket used by + ``run_simple``. :issue:`2421` Version 2.2.1 diff --git a/src/werkzeug/serving.py b/src/werkzeug/serving.py index 5189bcab3..c48246986 100644 --- a/src/werkzeug/serving.py +++ b/src/werkzeug/serving.py @@ -1061,6 +1061,9 @@ def run_simple( if not is_running_from_reloader(): s = prepare_socket(hostname, port) fd = s.fileno() + # Silence a ResourceWarning about an unclosed socket. This object is no longer + # used, the server will create another with fromfd. + s.detach() os.environ["WERKZEUG_SERVER_FD"] = str(fd) else: fd = int(os.environ["WERKZEUG_SERVER_FD"])