I'm using construct as part of the flightgear-python library, and when using multiprocessing construct.core.Pass fails to pickle:
File "C:\...\lib\multiprocessing\reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <class 'construct.core.Pass'>: it's not the same object as construct.core.Pass
This only happens on Windows which is weird? Linux works just fine.
I found #894 which seems similar, since Pass is a singleton which is what I think pickle is complaining about ("we are trying to dump A, but because we changed its name to refer to another object 'B', pickle is actually confused with which object to dump")
I've tried a couple things on the user side, but I think this is something that needs to be fixed on the construct side of things.
This is using the latest construct, 2.10.68. Let me know if you need more information or testing from my end!
I'm using
constructas part of the flightgear-python library, and when usingmultiprocessingconstruct.core.Passfails to pickle:This only happens on Windows which is weird? Linux works just fine.
I found #894 which seems similar, since
Passis asingletonwhich is what I think pickle is complaining about ("we are trying to dump A, but because we changed its name to refer to another object 'B', pickle is actually confused with which object to dump")I've tried a couple things on the user side, but I think this is something that needs to be fixed on the
constructside of things.This is using the latest construct,
2.10.68. Let me know if you need more information or testing from my end!