Hello

Some update about the spawnl() thingy ;

I've adapted the win32 code to have a new unix Popen object, which works with a spawn() semantic. It's quite straightforward, and the mutiprocessing call of a python functions works OK.

But I've run into some trouble : synchronization primitives.
Win32 semaphore can be "teleported" to another process via the DuplicateHandle() call. But unix named semaphores don't work that way - instead, they must be opened with the same name by each spawned subprocess. The problem here, the current semaphore C code is optimized to forbid semaphore sharing (other than via fork) : use of (O_EXL|O_CREAT) on opening, immediate unlinking of new semaphores....

So if we want to benefit from sync primitives with this spawn() implementation, we need a working named semaphore implementation, too...

What's the best in your opinion ? Editing the current multiprocessing semaphore's behaviour to allow (with specific options, attributes and methods) its use in this case ? Or adding a new NamedSemaphore type like this one ?
http://semanchuk.com/philip/posix_ipc/

Regards,
Pascal





_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to