Message158206
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.) |
|
Date |
User |
Action |
Args |
2012-04-13 11:05:02 | sbt | set | recipients:
+ sbt, gregory.p.smith, amaury.forgeotdarc, pitrou, tim.golden, jnoller, brian.curtin, asksol, santoso.wijaya |
2012-04-13 11:05:02 | sbt | set | messageid: <1334315102.35.0.66426420336.issue11750@psf.upfronthosting.co.za> |
2012-04-13 11:05:01 | sbt | link | issue11750 messages |
2012-04-13 11:05:01 | sbt | create | |
|