瀏覽代碼

Merge remote-tracking branch 'msabramo/feature.py3.allow_request_and_file_to_be_garbage_collected' into merge.py3k

Gavin Carothers 11 年之前
父節點
當前提交
de4cb08ccb
共有 1 個文件被更改,包括 6 次插入1 次删除
  1. 6 1
      supervisor/http.py

+ 6 - 1
supervisor/http.py

@@ -5,6 +5,7 @@ import sys
 import supervisor.medusa.text_socket as socket
 import errno
 import pwd
+import weakref
 
 from supervisor.compat import urllib
 from supervisor.compat import sha1
@@ -640,7 +641,7 @@ class supervisor_af_unix_http_server(supervisor_http_server):
 class tail_f_producer:
     def __init__(self, request, filename, head):
         self.file = open(filename, 'rb')
-        self.request = request
+        self.request = weakref.ref(request)
         self.delay = 0.1
         sz = self.fsize()
         if sz >= head:
@@ -648,6 +649,10 @@ class tail_f_producer:
         else:
             self.sz = 0
 
+    def __del__(self):
+        if self.file:
+            self.file.close()
+
     def more(self):
         try:
             newsz = self.fsize()