]> granicus.if.org Git - python/commitdiff
test_asyncore: wait explicitly for a thread termination (this dangling thread
authorCharles-François Natali <cf.natali@gmail.com>
Sun, 13 Jan 2013 13:08:01 +0000 (14:08 +0100)
committerCharles-François Natali <cf.natali@gmail.com>
Sun, 13 Jan 2013 13:08:01 +0000 (14:08 +0100)
could be the cause of a random failure).

1  2 
Lib/test/test_asyncore.py

index 4ae16eb1cc8dda8a2e41ea9c1fec997882cd52c4,8989a632e812c27407ca544e322c78c383169648..878b26cb7153c7087a08c2beb5d10ed70723344c
@@@ -784,14 -735,13 +784,14 @@@ class BaseTestAPI
      @support.reap_threads
      def test_quick_connect(self):
          # see: http://bugs.python.org/issue10340
 -        server = TCPServer()
 -        t = threading.Thread(target=lambda: asyncore.loop(timeout=0.1, count=500))
 -        t.start()
 -        self.addCleanup(t.join)
 -
 -        for x in range(20):
 -            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 +        if self.family in (socket.AF_INET, getattr(socket, "AF_INET6", object())):
 +            server = BaseServer(self.family, self.addr)
 +            t = threading.Thread(target=lambda: asyncore.loop(timeout=0.1,
 +                                                              count=500))
 +            t.start()
++            self.addCleanup(t.join)
 +
 +            s = socket.socket(self.family, socket.SOCK_STREAM)
              s.settimeout(.2)
              s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER,
                           struct.pack('ii', 1, 0))