[Python-ideas] Adding shm_open to mmap?
shibturn
shibturn at gmail.com
Wed Feb 15 02:00:30 CET 2012
On 15/02/2012 12:05am, Antoine Pitrou wrote:
> A patch is enough.
>
> Note that this functionality is already available under Windows
> (though not really advertised in our docs), through the `tagname`
> parameter to mmap.mmap():
>
>>>> import mmap
>>>> f = mmap.mmap(-1, 4096, "mysharedmem")
>>>> f.write(b"some bytes")
>
> And in another session:
>
>>>> import mmap
>>>> f = mmap.mmap(-1, 4096, "mysharedmem")
>>>> f.read(10)
> b'some bytes'
It's not quite the same functionality since the lifetime of tagnamed
mmaps is managed through handle refcounting. In some cases that is an
advantage compared to open()/unlink(), and in others a disadvantage.
Also, a problem with tagname is that there is no way to check whether
the returned mmap was created by another process -- unless you resort to
something like undocumented like
from _multiprocessing import win32
f = mmap.mmap(-1, 4096, "mysharedmem")
if win32.GetLastError() == win32.ERROR_ALREADY_EXISTS:
raise ValueError('tagname already exists')
sbt
More information about the Python-ideas
mailing list