[Python-ideas] Adding shm_open to mmap?

Mike Meyer mwm at mired.org
Wed Feb 15 00:50:44 CET 2012


One of the issues that showed up during the overlong TIOBE- thread and
spinoffs is that there's no portable way to get a named shared memory
segment (as distinguished from a disk-backed file) using the mmap
module. Most unix variants provide a memory-backed file system that
works for this, but it's name changes from distro to distro and even
installation to installation. It's not clear to me that non-Unix
platforms provide such a file system.

The Posix solution is shm_open, which accepts a name for rendezvous
and returns a file descriptor suitable for passing to mmap. Passing
the file descriptor to anything but fstat, ftruncate, close and mmap
is undefined.

We'd also need to add shm_unlink to remove the shared segment, as the
object created by shm_open isn't necessarily visible in the file
system name space. shm_open has five values that can be used in it's
flags argument, but those are shared with open and already available
in the os module.

This seems like a slam-dunk to me, but...

1) Is there some reason not to just add these two functions?

2) Are there any supported platforms with mmap and without
   shm_open/unlink?

3) Is this simple enough that a PEP isn't needed, just a patch in an
   issue?

   Thanks,
   <mike
-- 
Mike Meyer <mwm at mired.org>		http://www.mired.org/
Independent Software developer/SCM consultant, email for more information.

O< ascii ribbon campaign - stop html mail - www.asciiribbon.org



More information about the Python-ideas mailing list