|
Mc.N です。
>>2. SetProcessAffinityMask()/GetProcessAffinityMask() を使用しない理由について
>>何か理由があって SetProcessAffinityMask() を使用していないのであれば理由を教えていただけないでしょうか。
>
>特定プロセッサ・リソース(TSC/MSR etc)の取得/変更が主目的と思われますので、どちらを
>使っても大差無いと思いますが...
>逆にSetProcessAffinityMask()/GetProcessAffinityMask()を使った場合の利点はなんでしょうか?
GetProcessAffinityMask() で今使用しているプロセッサを確認できるのが利点です。Get''Thread''AffinityMask()なる関数が存在しているなら特に疑問視しなかったのですが、どうもそのような関数は存在しないようです。
今の所、順序良く dwThreadAffinityMask の mask が並んでいるっぽいですが、今後も mask が順序良く並んでくれるという保証はないと感じています。多分、Hotplug 出来るような CPU を想定してのことだとは思うのですが。
で、手元で動作確認した感じだと SetProcessAffinityMask() も SetThreadAffinityMask() も目的は果たしているのは確認しました。となると Get の無い SetThreadAffinityMask() を使用する理由が分からなかったのです。
きっと技術的に問題があるからに違いない、と。
その後のコメントを見る限り、特に大きな理由は無さそうだったので納得しました。
|
|