I can already correctly detect the number of logical processors correctly on all three of these platforms.
To be able to detect the number of physical processors/cores correctly I'll have to detect if hyperthreading is supported AND active (or enabled if you prefer) and if so divide the number of logical processors by 2 to determine the number of physical processors.
Perphaps I should provide an example:
A quad core Intel CPU's with hyperthreading enabled has 4 physical cores, yet 8 logical processors (hyperthreading creates 4 more logical processors). So my current function would detect 8 instead of the desired 4.
My question therefore is if there is a way to detect whether hyperthreading is supported AND ENABLED?