Следующая функция объявлена в <kern/cpu_number.h>
:
extern int cpu_number(void);
и возвращает индекс процессора, на котором в данный момент выполняется код.
Обратите внимание, что это в неподдерживаемый KPI, однако, вам нужно связать с com.apple.kpi.unsupported
.
Также обратите внимание, что результат будет бессмысленным, если выгрузка не отключена, что, конечно, обычно не имеет место, только когда удерживается спин-блокировка или при работе в основном обработчике прерываний. Включенная предварительная выгрузка означает, что работающий поток может быть перепланирован в любое время, поэтому к тому времени, когда ваш код использует номер ЦП, полученный при вызове вышеуказанной функции, он, возможно, уже был перепланирован для запуска на другом CPU.