[Python-Dev] PEP 574 -- Pickle protocol 5 with out-of-band data (original) (raw)
Paul Moore p.f.moore at gmail.com
Thu Mar 29 04:56:50 EDT 2018
- Previous message (by thread): [Python-Dev] PEP 574 -- Pickle protocol 5 with out-of-band data
- Next message (by thread): [Python-Dev] PEP 574 -- Pickle protocol 5 with out-of-band data
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 29 March 2018 at 09:49, Chris Angelico <rosuav at gmail.com> wrote:
On Thu, Mar 29, 2018 at 7:18 PM, Nathaniel Smith <njs at pobox.com> wrote:
Another example is the multiprocessing module: it's very safe to assume that the parent and the child are using the same interpreter :-). There's no fundamental reason you shouldn't be able to send bytecode between them. You put a smiley on it, but is this actually guaranteed on all platforms? On Unix-like systems, presumably it's using fork() and thus will actually use the exact same binary, but what about on Windows, where a new process has to be spawned? Can you say "spawn me another of this exact binary blob", or do you have to identify it by a file name? It wouldn't be a problem for the nonportable mode to toss out an exception in weird cases like this, but it would be a problem if that causes a segfault or something.
If you're embedding, you need multiprocessing.set_executable() (https://docs.python.org/3.6/library/multiprocessing.html#multiprocessing.set_executable), so in that case you definitely won't have the same binary...
Paul
- Previous message (by thread): [Python-Dev] PEP 574 -- Pickle protocol 5 with out-of-band data
- Next message (by thread): [Python-Dev] PEP 574 -- Pickle protocol 5 with out-of-band data
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]