Standard IPC for Python?

Philip Semanchuk philip at
Tue Jan 13 19:55:17 CET 2009

On Jan 13, 2009, at 1:22 PM, Laszlo Nagy wrote:

>>> - posix_ipc is broken under FreeBSD
>> A clarification: the module posix_ipc is *not* broken. It exposes  
>> FreeBSD's implementation of POSIX IPC which has broken semaphores  
>> (based on my experiments, anyway). The practical result for you is  
>> the same but the difference is very important to me as the module  
>> author. Fixing the posix_ipc module is under my control, fixing  
>> FreeBSD's POSIX IPC is not.
> Mea culpa. :-) I did not want to offend you.

Thank you, Laszlo, I appreciate that.

>>> - sysv_ipc does not support message queues at all
>> That's true, but in your original email you said you were looking  
>> for "semaphores and shared memory". There was no mention of message  
>> queues.
> You are right again. :-) I would like to use IPC beacuse I want to  
> send messages between processes.

If you can wait a bit and Windows is not crucial, sysv_ipc should have  
message queue support before too long.

>>> - shm is not maintained
>> SHM *is* maintained. As I said in my first email and as it says on  
>> the Web page, I'm not developing it any further. No further  
>> development != unmaintained.
> My bad again. :-( This is not my day.
>>> It is so interesting that there is no standard implementation for  
>>> IPC in Python. I would think it is a very common task for  
>>> programmers. I might find myself writting a new IPC module that  
>>> works under Windows as well.
>> Feel free to reinvent the wheel. Or, you could pitch in and help  
>> with what's already out there.

I realize that lack of Windows support is a big minus for both of  
these modules. As I said, any help getting either posix_ipc or  
sysv_ipc working under Windows would be much appreciated. It sounds  
like you have access to the platform and incentive to see it working,  
so dig in if you like.

Once I get message queues working for SysV, I want to support unnamed  
semaphores in the POSIX module and then I'll consider these modules  
mainly feature-complete. After that I can think about adding more  
features like:
- Windows support
- Python 2.6/3.0 support
- buffer-style access to shared memory (slicing, etc.)
- Merging these two into a generic ipc module that's agnostic about  
POSIX versus Sys V. That might not be realistic.

If I have time in the future, I'll tackle these items myself. But  
these projects are just educational for me and paying work will take  


More information about the Python-list mailing list