On Jan 13, 2009, at 3:04 PM, Laszlo Nagy wrote:



I was suggesting getting posix_ipc or sysv_ipc to compile against a compatibility library (Cygwin?) under Windows. It sounds like you're proposing something totally different, no?
OK I see. But probably I do not want to use Cygwin because that would create another dependency. I understand that posix_ipc/sysv is not natively supported under windows. What about this:

- create a wrapper, using ctypes, /windll / cdll/ to access API functions - use CreateFileMapping on the page file to create shared memory (a la windows: http://msdn.microsoft.com/en-us/library/aa366537.aspx) - use CreateEvent/WaitForSingleObject for signaling (http://msdn.microsoft.com/en-us/library/ms682396(VS.85).aspx ) - these should be enough to implement shared memory functions and message queues under windows, and that might be a quick solution at least for me.

Python has the mmap module which might work a lot like shared memory. I'm not clear on the differences, honestly.

Named pipes might be a cleaner way to implement message queues:
http://msdn.microsoft.com/en-us/library/aa365590(VS.85).aspx


- it might also be used to emulate the same posix_ipc interface, without any external dependency added (cygwin).

It'd be nice to have message queues/named pipes working under Windows.

If I were you, I'd steer clear of calling them something specific like "SysV" or "POSIX" messages queues. That will create an expectation of certain semantics, and you might find it difficult to fulfill that promise in certain cases (e.g. implementing the POSIX function mq_notify() ). If you call them Nagy message queues then no one will be disappointed or surprised as long as your code implements FIFO IPC.


Bye
Philip


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to