Export to GitHub

omnithreadlibrary - issue #79

DsiWin32 AffinityMask functions should use DWORD_PTR


Posted on Apr 24, 2015 by Quick Rhino

What steps will reproduce the problem? 1. On systems with more than 32 logical processors, OmniThread library doesn't start because of range check errors in AffinityMask functions 2. 3.

What is the expected output? What do you see instead?

DwiWin32's wrappers for AffinityMask functions should be upgraded to the actual Win32 API (using DWORD_PTR instead of DWORD). Also, DSiCPUIDs should be extended to support 64 processors. Also, loops reading DSiCPUIDs should use High(DSiCPUIDs) instead of 32 (or 64)

What version of the product are you using? On what operating system? Most recent code. Host with 32 processors.

Please provide any additional information below.

Comment #1

Posted on Apr 24, 2015 by Quick Rhino

Note, this happens on 64 bit using XE2, but probably also applies to all other supported compiler versions, and might even fail on 32 bit Windows OSes (although it's highly unlikely those support more than 32 processors).

Comment #2

Posted on Apr 24, 2015 by Quick Rhino

Perhaps https://github.com/gabr42/GpDelphiUnits/issues/6 is the better place for this issue

Status: New

Labels:
Type-Defect Priority-Medium