multiprocessing module (PEP 371)

sturlamolden sturlamolden at yahoo.no
Wed Jun 4 18:16:19 EDT 2008


On Jun 4, 11:29 pm, Paul Boddie <p... at boddie.org.uk> wrote:

> tested the executable on Windows. COW (copy-on-write, for those still
> thinking that we're talking about dairy products) would be pretty
> desirable if it's feasible, though.

There is a well known C++ implementation of cow-fork on Windows, which
I have slightly modified and ported to C. But as the new WDK (Windows
driver kit) headers are full of syntax errors, the compiler choke on
it. :( I am seriously considering re-implementing the whole cow fork
in pure Python using ctypes.

If you pass NULL as section handle to ZwCreateProcess (or
NtCreateProcess) you do get a rudimentary cow fork. But the new
process image has no context and no active threads. The NT kernel is
designed to support several subsystems. Both the OS/2 and SUA
subsystems provide a functional COW fork, but the Win32 subsystem do
not expose the functionality. I honestly don't understand why, but
maybe it is backwards compatibility that prevents it (it's backlog
goes back to DOS, in which forking was impossible due to single-
tasking.)

But anyway ... what I am trying to say is that pyprocessing is
somewhat inefficient (and limited) on Windows due to lack of a fork
(cow or not).








More information about the Python-list mailing list