sbt <[email protected]> added the comment:
I think there are some issues with the treatment of the DWORD type. (DWORD is
a typedef for unsigned long.)
_subprocess always treats them as signed, whereas _multiprocessing treats them
(correctly) as unsigned. _windows does a mixture: functions from _subprocess
parse DWORD arguments as signed ("i"), functions from _multiprocessing parse
DWORD arguments as unsigned ("k"), and the constants are signed.
So in _windows the constants GENERIC_READ, NMPWAIT_WAIT_FOREVER and INFINITE
will be negative. I think this will potentially cause errors from
PyArg_ParseTuple() when used as arguments to functions from _multiprocessing.
I think it is also rather confusing that some functions (eg CreatePipe())
return handles using a wrapper type which closes on garbage collection, while
others (eg CreateNamedPipe()) return handles as plain integers.
(The code also needs updating because quite a few functions have since been
added to _multiprocessing.win32.)
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue11750>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com