Saturday, 6 July 2019

Understanding shared_memory in Python 3.8

I'm trying to understand some of shared_memory's operation.

Looking at the source , it looks like the module uses shm_open() for UNIX environments, and CreateFileMapping \ OpenFileMapping on windows, combined with mmap.

I understand from here, that in order to avoid a thorough serialization / deserialization by pickle, one needs to implement __setstate__() and __getstate__() explicitly for his shared datatype.

I do not see any such implementation in shared_memory.py.

How does shared_memory circumvent the pickle treatment?

Also, on a Windows machine, this alone seems to survive accross interpreters:

from mmap import mmap

shared_size = 12
shared_label = "my_mem"

mmap(-1, shared_size , shared_label)

Why then is CreateFileMapping \ OpenFileMapping needed here?



from Understanding shared_memory in Python 3.8

No comments:

Post a Comment