Browse Source
bpo-30256: Add manager_owned keyword arg to AutoProxy (GH-16341)
Co-authored-by: Jordan Speicher <jordan@jspeicher.com>
pull/26995/head
finefoot
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with
15 additions and
2 deletions
-
Lib/multiprocessing/managers.py
-
Lib/test/_test_multiprocessing.py
-
Misc/NEWS.d/next/Library/2019-09-25-13-54-41.bpo-30256.wBkzox.rst
-
Misc/NEWS.d/next/Tests/2019-09-25-18-10-10.bpo-30256.A5i76Q.rst
|
|
|
@ -967,7 +967,7 @@ def MakeProxyType(name, exposed, _cache={}): |
|
|
|
|
|
|
|
|
|
|
|
def AutoProxy(token, serializer, manager=None, authkey=None, |
|
|
|
exposed=None, incref=True): |
|
|
|
exposed=None, incref=True, manager_owned=False): |
|
|
|
''' |
|
|
|
Return an auto-proxy for `token` |
|
|
|
''' |
|
|
|
@ -987,7 +987,7 @@ def AutoProxy(token, serializer, manager=None, authkey=None, |
|
|
|
|
|
|
|
ProxyType = MakeProxyType('AutoProxy[%s]' % token.typeid, exposed) |
|
|
|
proxy = ProxyType(token, serializer, manager=manager, authkey=authkey, |
|
|
|
incref=incref) |
|
|
|
incref=incref, manager_owned=manager_owned) |
|
|
|
proxy._isauto = True |
|
|
|
return proxy |
|
|
|
|
|
|
|
|
|
|
|
@ -2286,6 +2286,16 @@ class _TestContainers(BaseTestCase): |
|
|
|
self.assertIsInstance(outer[0], list) # Not a ListProxy |
|
|
|
self.assertEqual(outer[-1][-1]['feed'], 3) |
|
|
|
|
|
|
|
def test_nested_queue(self): |
|
|
|
a = self.list() # Test queue inside list |
|
|
|
a.append(self.Queue()) |
|
|
|
a[0].put(123) |
|
|
|
self.assertEqual(a[0].get(), 123) |
|
|
|
b = self.dict() # Test queue inside dict |
|
|
|
b[0] = self.Queue() |
|
|
|
b[0].put(456) |
|
|
|
self.assertEqual(b[0].get(), 456) |
|
|
|
|
|
|
|
def test_namespace(self): |
|
|
|
n = self.Namespace() |
|
|
|
n.name = 'Bob' |
|
|
|
|
|
|
|
@ -0,0 +1 @@ |
|
|
|
Pass multiprocessing BaseProxy argument `manager_owned` through AutoProxy |
|
|
|
@ -0,0 +1,2 @@ |
|
|
|
Add test for nested queues when using ``multiprocessing`` shared objects |
|
|
|
``AutoProxy[Queue]`` inside ``ListProxy`` and ``DictProxy`` |