New submission from Johannes <[email protected]>: 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 <[email protected]> <https://bugs.python.org/issue32538> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
