Creating a python extension that works with multiprocessing.Queue
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Tue Mar 17 23:43:49 EDT 2009
En Sun, 15 Mar 2009 01:51:35 -0200, Travis Miller <raphtee at gmail.com>
escribió:
> I am very new to the python C API, and have written a simple type
> called SU2 that has 4 members that are all doubles. Everything seems
> to work fine (can import my module and instantiate the new type and
> act on it with various methods I have defined), except for when I
> attempt to use my new type with multiprocessing.Queue (by the way I am
> working with python 2.6).
>
> So when I declare my object instance and call the put() method on the
> Queue instance, the object I get out with the get() method of the same
> Queue instance is not the same object. The four members of the
> object are all coming through as all zeros. Below is the snippet of
> code.
Are you on Windows? multiprocessing uses pickles to transfer objects
between processes. See if you can dump and load those kind of objects. If
not, you may need to implement __getstate__/__setstate__ or __reduce__
See http://docs.python.org/library/pickle.html
--
Gabriel Genellina
More information about the Python-list
mailing list