3 ms·
You mean programs where you put an object into pickle and some other threads modify it while pickle is processing it? Doesn't surprise me - the equivalent writt
by formerly_proven 5y ago
You mean programs where you put an object into pickle and some other threads modify it while pickle is processing it? Doesn't surprise me - the equivalent written in plain Python would be very thread unsafe as well.
- Animats 5y agoNo, I mean several threads doing completely separate CPickle streams with no shared data or variables at the Python level.
- kzrdude 5y agoHas it since been fixed?
- toyg 5y agoProbably not. CPickle is famously shunned by anyone who has to do serious, performance-critical serialization/deserialization.
- kzrdude 5y agoI was curious, and an issue that fits the description was fixed in Py 3.7.x here: https://bugs.python.org/issue34572 https://bugs.python.org/issue34572 but other threading bugs remain: https://bugs.python.org/issue38884 https://bugs.python.org/issue38884
- azinman2 5y agoWhat’s the most performance critical alternative? Pickle is tied to the VM, so it’s not a generally good persistence option in a prod setup, but it can mighty convenient.
- garmaine 5y agoWhat do people use instead?
- da39a3ee 5y agoJSON, protocol buffers, thrift, etc. Saving python-native objects such as functions, class instances etc is usually not the right thing to do in production code.