mirror of
https://github.com/python/cpython.git
synced 2025-09-27 18:59:43 +00:00
Make sure the BaseManager in test_multiprocessing is cleaned up correctly (GH-11653)
This commit is contained in:
parent
613f729e5d
commit
7b2a37b728
1 changed files with 20 additions and 15 deletions
|
@ -2817,6 +2817,7 @@ class _TestRemoteManager(BaseTestCase):
|
||||||
address=(test.support.HOST, 0), authkey=authkey, serializer=SERIALIZER
|
address=(test.support.HOST, 0), authkey=authkey, serializer=SERIALIZER
|
||||||
)
|
)
|
||||||
manager.start()
|
manager.start()
|
||||||
|
self.addCleanup(manager.shutdown)
|
||||||
|
|
||||||
p = self.Process(target=self._putter, args=(manager.address, authkey))
|
p = self.Process(target=self._putter, args=(manager.address, authkey))
|
||||||
p.daemon = True
|
p.daemon = True
|
||||||
|
@ -2836,7 +2837,6 @@ class _TestRemoteManager(BaseTestCase):
|
||||||
|
|
||||||
# Make queue finalizer run before the server is stopped
|
# Make queue finalizer run before the server is stopped
|
||||||
del queue
|
del queue
|
||||||
manager.shutdown()
|
|
||||||
|
|
||||||
class _TestManagerRestart(BaseTestCase):
|
class _TestManagerRestart(BaseTestCase):
|
||||||
|
|
||||||
|
@ -2852,25 +2852,29 @@ class _TestManagerRestart(BaseTestCase):
|
||||||
authkey = os.urandom(32)
|
authkey = os.urandom(32)
|
||||||
manager = QueueManager(
|
manager = QueueManager(
|
||||||
address=(test.support.HOST, 0), authkey=authkey, serializer=SERIALIZER)
|
address=(test.support.HOST, 0), authkey=authkey, serializer=SERIALIZER)
|
||||||
srvr = manager.get_server()
|
try:
|
||||||
addr = srvr.address
|
srvr = manager.get_server()
|
||||||
# Close the connection.Listener socket which gets opened as a part
|
addr = srvr.address
|
||||||
# of manager.get_server(). It's not needed for the test.
|
# Close the connection.Listener socket which gets opened as a part
|
||||||
srvr.listener.close()
|
# of manager.get_server(). It's not needed for the test.
|
||||||
manager.start()
|
srvr.listener.close()
|
||||||
|
manager.start()
|
||||||
|
|
||||||
p = self.Process(target=self._putter, args=(manager.address, authkey))
|
p = self.Process(target=self._putter, args=(manager.address, authkey))
|
||||||
p.start()
|
p.start()
|
||||||
p.join()
|
p.join()
|
||||||
queue = manager.get_queue()
|
queue = manager.get_queue()
|
||||||
self.assertEqual(queue.get(), 'hello world')
|
self.assertEqual(queue.get(), 'hello world')
|
||||||
del queue
|
del queue
|
||||||
manager.shutdown()
|
finally:
|
||||||
|
if hasattr(manager, "shutdown"):
|
||||||
|
manager.shutdown()
|
||||||
|
|
||||||
manager = QueueManager(
|
manager = QueueManager(
|
||||||
address=addr, authkey=authkey, serializer=SERIALIZER)
|
address=addr, authkey=authkey, serializer=SERIALIZER)
|
||||||
try:
|
try:
|
||||||
manager.start()
|
manager.start()
|
||||||
|
self.addCleanup(manager.shutdown)
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
if e.errno != errno.EADDRINUSE:
|
if e.errno != errno.EADDRINUSE:
|
||||||
raise
|
raise
|
||||||
|
@ -2879,7 +2883,8 @@ class _TestManagerRestart(BaseTestCase):
|
||||||
time.sleep(1.0)
|
time.sleep(1.0)
|
||||||
manager = QueueManager(
|
manager = QueueManager(
|
||||||
address=addr, authkey=authkey, serializer=SERIALIZER)
|
address=addr, authkey=authkey, serializer=SERIALIZER)
|
||||||
manager.shutdown()
|
if hasattr(manager, "shutdown"):
|
||||||
|
self.addCleanup(manager.shutdown)
|
||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue