[New-bugs-announce] [issue32538] Multiprocessing Manager on 3D list - no change of the list possible

Johannes report at bugs.python.org
Fri Jan 12 10:05:56 EST 2018


New submission from Johannes <johannes.jaegers at gmx.de>:

I have the following code, which works without multiprocessing:

data=[[['','','','','','','','','','','','']]]
data[0][0][0] = 5
data[0][0][1] = "5" # data in the array is mixed with float and str
print(data)

#=> [[[5, '5', '', '', '', '', '', '', '', '', '', '']]]

Now I want to use Multiprocessing and every process should be able to change the 3D list. This doesn't work and no error message is shown.

from multiprocessing import Process, Manager
manager=Manager()
data=manager.list([[['','','','','','','','','','','','']]])
data[0][0][0] = 5
data[0][0][1] = "5"
print(data)    

#=> [[['', '', '', '', '', '', '', '', '', '', '', '']]]

I found the following text:

list(sequence)
Create a shared list object and return a proxy for it.
Changed in version 3.6: Shared objects are capable of being nested. For     
example, a shared container object such as a shared list can contain 
other shared objects which will all be managed and synchronized by the 
SyncManager.(https://docs.python.org/3/library/multiprocessing.html)

Unfortunately it also doesn't work with 3.6.3, same problem as before! But as it should work, I guess it's a bug?

I use Ubuntu 16.04...

----------
components: Interpreter Core
messages: 309858
nosy: John_81
priority: normal
severity: normal
status: open
title: Multiprocessing Manager on 3D list - no change of the list possible
type: behavior
versions: Python 3.6

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue32538>
_______________________________________


More information about the New-bugs-announce mailing list