[Python-checkins] python/dist/src/Lib/test test_logging.py,1.5,1.6

gvanrossum@users.sourceforge.net gvanrossum@users.sourceforge.net
Fri, 25 Apr 2003 07:22:05 -0700


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1:/tmp/cvs-serv2824

Modified Files:
	test_logging.py 
Log Message:
New version from Vinaj, should solve the threading problems (hopefully).


Index: test_logging.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_logging.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** test_logging.py	18 Feb 2003 14:20:02 -0000	1.5
--- test_logging.py	25 Apr 2003 14:22:00 -0000	1.6
***************
*** 39,42 ****
--- 39,44 ----
  BANNER = "-- %-10s %-6s ---------------------------------------------------\n"
  
+ FINISH_UP = "Finish up, it's closing time. Messages should bear numbers 0 through 24."
+ 
  #----------------------------------------------------------------------------
  # Log receiver
***************
*** 80,87 ****
--- 82,94 ----
      def handleLogRecord(self, record):
          logname = "logrecv.tcp." + record.name
+         #If the end-of-messages sentinel is seen, tell the server to terminate
+         if record.msg == FINISH_UP:
+             self.server.abort = 1
          record.msg = record.msg + " (via " + logname + ")"
          logger = logging.getLogger(logname)
          logger.handle(record)
  
+ socketDataProcessed = threading.Condition()
+ 
  class LogRecordSocketReceiver(ThreadingTCPServer):
      """
***************
*** 108,111 ****
--- 115,122 ----
                  self.handle_request()
              abort = self.abort
+         #notify the main thread that we're about to exit
+         socketDataProcessed.acquire()
+         socketDataProcessed.notify()
+         socketDataProcessed.release()
  
      def process_request(self, request, client_address):
***************
*** 196,200 ****
      INF_ERR_UNDEF.debug(nextmessage())
  
!     INF.info("Messages should bear numbers 0 through 24.")
  
  #----------------------------------------------------------------------------
--- 207,211 ----
      INF_ERR_UNDEF.debug(nextmessage())
  
!     INF.info(FINISH_UP)
  
  #----------------------------------------------------------------------------
***************
*** 456,463 ****
  
      finally:
!         #shut down server
!         tcpserver.abort = 1
!         for thread in threads:
!             thread.join()
          banner("logrecv output", "begin")
          sys.stdout.write(sockOut.getvalue())
--- 467,474 ----
  
      finally:
!         #wait for TCP receiver to terminate
!         socketDataProcessed.acquire()
!         socketDataProcessed.wait()
!         socketDataProcessed.release()
          banner("logrecv output", "begin")
          sys.stdout.write(sockOut.getvalue())