http://bugs.winehq.org/show_bug.cgi?id=19982
--- Comment #24 from ray@pobox.co.uk 2009-09-30 15:26:22 --- (In reply to comment #22)
(In reply to comment #19)
I have applied these pataches and my ART test program shows a logic error. If the Process Affinity is 0x01 setting a Thread afffinity of 0x02 does not fail and it should do.
I sent a patch for this issue: http://www.winehq.org/pipermail/wine-patches/2009-September/079205.html
I have just looked at this patch and reading the code it looks incorrect to me.
void set_thread_affinity( struct thread *thread, affinity_t affinity ) { + if (!(affinity & thread->process->affinity)) + { + set_error( STATUS_INVALID_PARAMETER ); + return; + }
If the process affinity is 0x05 and I try and set a thread affinity of 0x03 this should fail and this will not be the case with the above code.