Rev 5298: Use a boolean for server.serving, a threading.Event() is not needed here. in file:///home/vila/src/bzr/experimental/leaking-tests/

Vincent Ladeuil v.ladeuil+lp at free.fr
Wed Jun 30 16:53:26 BST 2010


At file:///home/vila/src/bzr/experimental/leaking-tests/

------------------------------------------------------------
revno: 5298
revision-id: v.ladeuil+lp at free.fr-20100630155325-8xen1q8dhq0gpj27
parent: v.ladeuil+lp at free.fr-20100630153551-o00o5olc08l4hfin
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: propagate-exceptions
timestamp: Wed 2010-06-30 17:53:25 +0200
message:
  Use a boolean for server.serving, a threading.Event() is not needed here.
-------------- next part --------------
=== modified file 'bzrlib/tests/http_server.py'
--- a/bzrlib/tests/http_server.py	2010-06-30 15:19:36 +0000
+++ b/bzrlib/tests/http_server.py	2010-06-30 15:53:25 +0000
@@ -344,7 +344,7 @@
         Return True if we should proceed with this request, False if we should
         not even touch a single byte in the socket !
         """
-        return self.serving is not None and self.serving.isSet()
+        return self.serving
 
     def handle_request(self):
         request, client_address = self.get_request()
@@ -352,7 +352,7 @@
             if self.verify_request(request, client_address):
                 self.process_request(request, client_address)
         except:
-            if self.serving is not None and self.serving.isSet():
+            if self.serving:
                 self.handle_error(request, client_address)
             else:
                 # Exceptions raised while we shut down are just noise, but feel
@@ -371,14 +371,15 @@
             self.server_address = self.socket.getsockname()
 
     def serve(self, started):
-        self.serving  = threading.Event()
-        self.serving.set()
+        # From now on we serve
+        self.serving  = True
+        # We should be ready to shut down
         self.is_shut_down.clear()
         if 'threads' in tests.selftest_debug_flags:
             sys.stderr.write('Starting %r\n' % (self.server_address,))
         # We are listening and ready to accept connections
         started.set()
-        while self.serving.isSet():
+        while self.serving:
             if 'threads' in tests.selftest_debug_flags:
                 sys.stderr.write('Accepting on %r\n' % (self.server_address,))
             # Really a connection but the python framework is generic and
@@ -390,6 +391,7 @@
         self.server_close()
         if 'threads' in tests.selftest_debug_flags:
             sys.stderr.write('Closed   %r\n' % (self.server_address,))
+        # Shut down has been finalized, release the caller thread
         self.is_shut_down.set()
 
     def join_thread(self, thread, timeout=2):
@@ -412,7 +414,7 @@
             return
         # As soon as we stop serving, no more connection are accepted except
         # one to get out of the blocking listen.
-        self.serving.clear()
+        self.serving = False
         # The server is listening for a last connection, let's give it:
         last_conn = None
         try:

=== modified file 'bzrlib/tests/https_server.py'
--- a/bzrlib/tests/https_server.py	2010-05-24 01:05:14 +0000
+++ b/bzrlib/tests/https_server.py	2010-06-30 15:53:25 +0000
@@ -44,7 +44,7 @@
         Return True if we should proceed with this request, False if we should
         not even touch a single byte in the socket !
         """
-        serving = self.serving is not None and self.serving.isSet()
+        serving = self.serving
         if serving:
             request.do_handshake()
         return serving

=== modified file 'bzrlib/tests/test_http.py'
--- a/bzrlib/tests/test_http.py	2010-06-30 15:19:36 +0000
+++ b/bzrlib/tests/test_http.py	2010-06-30 15:53:25 +0000
@@ -334,7 +334,7 @@
         server.start_server()
         self.assertTrue(server._httpd is not None)
         self.assertTrue(server._httpd.serving is not None)
-        self.assertTrue(server._httpd.serving.isSet())
+        self.assertTrue(server._httpd.serving)
 
     def test_create_http_server_one_zero(self):
         class RequestHandlerOneZero(http_server.TestingHTTPRequestHandler):

=== modified file 'bzrlib/tests/test_server.py'
--- a/bzrlib/tests/test_server.py	2010-06-30 15:35:51 +0000
+++ b/bzrlib/tests/test_server.py	2010-06-30 15:53:25 +0000
@@ -351,7 +351,7 @@
     def __init__(self, sibling_class):
         self.sibling_class = sibling_class
         self.started = threading.Event()
-        self.serving = threading.Event()
+        self.serving = None
         self.stopped = threading.Event()
         # We collect the resources used by the clients so we can release them
         # when shutting down
@@ -368,12 +368,12 @@
             self.server_address = self.socket.getsockname()
 
     def serve(self):
-        self.serving.set()
+        self.serving = True
         self.stopped.clear()
         # We are listening and ready to accept connections
         self.started.set()
         try:
-            while self.serving.isSet():
+            while self.serving:
                 # Really a connection but the python framework is generic and
                 # call them requests
                 self.handle_request()
@@ -403,11 +403,11 @@
         not even touch a single byte in the socket ! This is useful when we
         stop the server with a dummy last connection.
         """
-        return self.serving.isSet()
+        return self.serving
 
     def handle_error(self, request, client_address):
         # Stop serving and re-raise the last exception seen
-        self.serving.clear()
+        self.serving = False
         raise
 
     def ignored_exceptions_during_shutdown(self, e):
@@ -600,7 +600,7 @@
             # one to get out of the blocking listen.
             self.set_ignored_exceptions(
                 self.server.ignored_exceptions_during_shutdown)
-            self.server.serving.clear()
+            self.server.serving = False
             if debug_threads():
                 sys.stderr.write('Server thread %s will be joined\n'
                                  % (self._server_thread.name,))



More information about the bazaar-commits mailing list