Hi all,
I was trying to share a dictionary of dictionaries of arrays with Manager from multiprocessing. Without multiprocessing the code works perfectly, but with the current example the last print does not show the correct result.

Any hint?

Thanks,
Darío Suárez
#!/usr/local/bin/python2.7
import sys
import warnings
from multiprocessing import Pool, Value, Array, Manager


N_PROCESSES = 8


def f(results, key):

    results[key]['d'][3].append(1)

def main():
  
    pool = Pool(processes=N_PROCESSES)
    manager = Manager()
    
    results = manager.dict()

    for key in ['k', 'kk']:
        results[key] = dict([(key2, [[] for i in range(4)]) for key2 in ['d', 'dd']])


    res = [ pool.apply_async(f, key) for key in ['k'] ]
    map(lambda x: x.wait(), res)

    print results['k']
    print results['k']['d']
    print results['k']['d'][3]
    

if __name__ == "__main__":
    main()
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to