On 1/28/11 1:02 PM, Alan wrote:
Can the below example be fixed to work?
Thanks,
Alan Isaac

import multiprocessing as mp

class Test(object):
     pass

def class_factory(x):
     class ConcreteTest(Test):
         _x = x
     return ConcreteTest

def f(cls):
     print cls._x

if __name__ == '__main__':
     pool = mp.Pool(2)
     pool.map(f, [class_factory(i) for i in range(4)])

Send the (pickleable) factory and the arguments used to construct the instance, not the unpickleable instance itself.

def g(factory, i):
    cls = factory(i)
    print cls._x

if __name__ == '__main__':
      pool = mp.Pool(2)
      pool.map(g, zip([class_factory] * 4, range(4)))

By the way, when asking for help like this, show us what your code did and describe what results you want. It can often be hard to figure out exactly what you mean by "work".

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to