|
@@ -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()
|