]> granicus.if.org Git - python/commitdiff
Fix from Vinaj for the "writing to closed file" errors. SF 670390.
authorGuido van Rossum <guido@python.org>
Tue, 21 Jan 2003 21:05:22 +0000 (21:05 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 21 Jan 2003 21:05:22 +0000 (21:05 +0000)
Lib/test/output/test_logging
Lib/test/test_logging.py

index 9e52c03c150d3f5ba9fa6f189bc43da0882eaf27..3cbbebfc28a641c65b21a33bc9ac25264f1f6440 100644 (file)
@@ -1,5 +1,4 @@
 test_logging
-About to start TCP server...
 -- log_test0  begin  ---------------------------------------------------
 CRITICAL:ERR:Message 0
 ERROR:ERR:Message 1
index 4e74394ac870607b72d4bcc096e103427a681567..113df5c3cdac11f588aa9f59e165c4e9b66c7b0b 100644 (file)
@@ -24,7 +24,7 @@
 Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved.
 """
 
-from select import select
+import select
 import os, sys, string, struct, types, cPickle, cStringIO
 import socket, threading, time, locale
 import logging, logging.handlers, logging.config
@@ -64,7 +64,6 @@ class LogRecordStreamHandler(StreamRequestHandler):
                 if len(chunk) < 4:
                     break
                 slen = struct.unpack(">L", chunk)[0]
-                #print slen
                 chunk = self.connection.recv(slen)
                 while len(chunk) < slen:
                     chunk = chunk + self.connection.recv(slen - len(chunk))
@@ -102,13 +101,19 @@ class LogRecordSocketReceiver(ThreadingTCPServer):
     def serve_until_stopped(self):
         abort = 0
         while not abort:
-            rd, wr, ex = select([self.socket.fileno()],
+            rd, wr, ex = select.select([self.socket.fileno()],
                                        [], [],
                                        self.timeout)
             if rd:
                 self.handle_request()
             abort = self.abort
 
+    def process_request(self, request, client_address):
+        #import threading
+        t = threading.Thread(target = self.finish_request,
+                             args = (request, client_address))
+        t.start()
+
 def runTCP(tcpserver):
     tcpserver.serve_until_stopped()
 
@@ -421,7 +426,7 @@ def test_main():
     #Set up servers
     threads = []
     tcpserver = LogRecordSocketReceiver()
-    sys.stdout.write("About to start TCP server...\n")
+    #sys.stdout.write("About to start TCP server...\n")
     threads.append(threading.Thread(target=runTCP, args=(tcpserver,)))
 
     for thread in threads:
@@ -447,18 +452,17 @@ def test_main():
         test3()
         banner("log_test3", "end")
 
-        banner("logrecv output", "begin")
-        sys.stdout.write(sockOut.getvalue())
-        sockOut.close()
-        banner("logrecv output", "end")
-
     finally:
         #shut down server
         tcpserver.abort = 1
         for thread in threads:
             thread.join()
+        banner("logrecv output", "begin")
+        sys.stdout.write(sockOut.getvalue())
+        sockOut.close()
+        banner("logrecv output", "end")
+        sys.stdout.flush()
 
 if __name__ == "__main__":
     sys.stdout.write("test_logging\n")
     test_main()
-    sys.stdout.flush()