MinGW and Python

sjdevnull at yahoo.com sjdevnull at yahoo.com
Tue Apr 25 17:13:11 EDT 2006


sturlamolden wrote:
> But as long as the cygwin dll is there, it creates an overhead for any
> system call. The worst overhead is associated with the Unix fork()
> system call, which Cygwin must emulate as there are no Win32
> equivalent. In particular, a fork() on Unix will be optimized with
> copy-on-write semantics in the kernel, but Cygwin cannot emulate that
> as it has no access to the Windows kernel.

Cygwin doesn't do COW fork() for historical reasons.  Windows 95/98
didn't expose support for such a thing, but NT, XP, etc do  (pass NULL
as the SectionHandle parameter to ZwCreateProcess or the older
NtCreateProcess to do a COW duplicate of the calling process).

Cygwin at one point had a fork() implementation using this in the
development tree (or being discussed on the mailing lists) but decided
not to use it since it wasn't much faster than full-copy fork for some
reason, and it would've split the code for NT/95.




More information about the Python-list mailing list