In exploring a bug in a game we* ran across an interesting difference between how Windows versions handle a multiple-processor request. In essence, this supposedly invalid request will succeed on newer Windows versions **: SetThreadAffinityMask(curthread,(-1));
So, the question I have is whether Wine should support this behavior as a matter of course or if it should only support this request when the emulated version is set to Vista or greater. It seems to me like this should be supported as a matter of course, since anyone who uses this "feature" is unlikely to have properly tested it on multiple versions of Windows. However, I'm unfamiliar with the policy on these version-difference matters and figured I should ask before putting something together.
Erich Hoover ehoover@mines.edu
* http://bugs.winehq.org/show_bug.cgi?id=21165 ** https://winetestbot.geldorp.nl/JobDetails.pl?Key=747
Hi Erich,
On Thu, Feb 18, 2010 at 3:15 PM, Erich Hoover ehoover@mines.edu wrote:
In exploring a bug in a game we* ran across an interesting difference between how Windows versions handle a multiple-processor request. In essence, this supposedly invalid request will succeed on newer Windows versions **: SetThreadAffinityMask(curthread,(-1));
So, the question I have is whether Wine should support this behavior as a matter of course or if it should only support this request when the emulated version is set to Vista or greater. It seems to me like this should be supported as a matter of course, since anyone who uses this "feature" is unlikely to have properly tested it on multiple versions of Windows. However, I'm unfamiliar with the policy on these version-difference matters and figured I should ask before putting something together.
You're right, we should do this as a matter of course. Usually the newer behavior is the saner behavior, so it's what we want to emulate. Please add a test case showing that SetThreadAffinityMask(curthread,(-1)) succeeds, and mark it as broken() if it doesn't. --Juan