[Python-ideas] multiprocessing IPC
Sturla Molden
sturla at molden.no
Sun Feb 12 15:35:19 CET 2012
Den 12.02.2012 14:52, skrev shibturn:
>
> As Mike says, on Unix you can just create a file in /tmp to back an
> mmap. On Linux, posix mmaps created with shm_open() seem to be normal
> files on a tmpfs file system, usually /dev/shm. Since /tmp is also
> usually a tmpfs file system on Linux, I assume this whould be
> equivalent in terms of overhead.
Mark did not use shm_open, he memory mapped from disk.
> I have a patch (http://bugs.python.org/issue8713) to make
> multiprocessing on Unix work with fork+exec which has to do this
> because semaphores cannot be inherited across exec. Making sure all
> the named semaphores get removed if the program terminates abnormally
> is a bit awkward though. It could be modified to make them picklable
> in general.
>
> On Windows dealing with "named objects" is easier since they are
> refcounted by the operating system and deleted when no more processes
> have handles for them.
>
> If you make a feature request at bugs.python.org I might work on a patch.
Cleaning up SysV ipc semaphores and shared memory is similar (semctl
instead of shmctl to get refrerence count). And then we need a monkey
patch for os._exit.
Look at the Cython code here:
http://dl.dropbox.com/u/12464039/sharedmem.zip
Sturla
More information about the Python-ideas
mailing list