Issue #16220: wsgiref now always calls close() on an iterable response.
Patch by Brent Tubbs.
diff --git a/Lib/wsgiref/handlers.py b/Lib/wsgiref/handlers.py
index ae1e8cc..8cb57e2 100644
--- a/Lib/wsgiref/handlers.py
+++ b/Lib/wsgiref/handlers.py
@@ -122,11 +122,13 @@
         in the event loop to iterate over the data, and to call
         'self.close()' once the response is finished.
         """
-        if not self.result_is_file() or not self.sendfile():
-            for data in self.result:
-                self.write(data)
-            self.finish_content()
-        self.close()
+        try:
+            if not self.result_is_file() or not self.sendfile():
+                for data in self.result:
+                    self.write(data)
+                self.finish_content()
+        finally:
+            self.close()
 
 
     def get_scheme(self):