]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fix dangling warning for test_multiprocessing
authorRichard Oudkerk <shibturn@gmail.com>
Thu, 3 May 2012 17:29:02 +0000 (18:29 +0100)
committerRichard Oudkerk <shibturn@gmail.com>
Thu, 3 May 2012 17:29:02 +0000 (18:29 +0100)
Lib/multiprocessing/managers.py
Lib/test/test_multiprocessing.py

index f47402a3ca99d48829b5f8e1a7ed289c1029706c..dc8166a997aadeb6d4cdfbbeef1687088c43c1db 100644 (file)
@@ -548,7 +548,10 @@ class BaseManager(object):
         '''
         Join the manager process (if it has been spawned)
         '''
-        self._process.join(timeout)
+        if self._process is not None:
+            self._process.join(timeout)
+            if not self._process.is_alive():
+                self._process = None
 
     def _debug_info(self):
         '''
index 792db256190030795f6f910b914abbc1e266c43f..4a74e87d020e3a74d480666f99c07330c7721704 100644 (file)
@@ -2516,6 +2516,7 @@ class TestInitializers(unittest.TestCase):
 
     def tearDown(self):
         self.mgr.shutdown()
+        self.mgr.join()
 
     def test_manager_initializer(self):
         m = multiprocessing.managers.SyncManager()
@@ -2523,6 +2524,7 @@ class TestInitializers(unittest.TestCase):
         m.start(initializer, (self.ns,))
         self.assertEqual(self.ns.test, 1)
         m.shutdown()
+        m.join()
 
     def test_pool_initializer(self):
         self.assertRaises(TypeError, multiprocessing.Pool, initializer=1)
@@ -2818,6 +2820,7 @@ def test_main(run=None):
         ManagerMixin.pool.terminate()
         ManagerMixin.pool.join()
         ManagerMixin.manager.shutdown()
+        ManagerMixin.manager.join()
         ThreadsMixin.pool.join()
         ProcessesMixin.pool.join()
         del ProcessesMixin.pool, ThreadsMixin.pool, ManagerMixin.pool