21 #if defined(__APPLE__)
22 #include <mach/thread_policy.h>
25 #if defined(__FreeBSD__)
26 #include <sys/_cpuset.h>
27 #include <sys/cpuset.h>
28 #include <pthread_np.h>
45 #if defined(__APPLE__) || defined(AS_ALPINE)
48 #elif defined(__FreeBSD__)
51 CPU_SET(cpu_id, &cpuset);
52 return pthread_attr_setaffinity_np(attr,
sizeof(cpuset_t), &cpuset);
56 CPU_SET(cpu_id, &cpuset);
57 return pthread_attr_setaffinity_np(attr,
sizeof(cpu_set_t), &cpuset);
67 #if defined(__APPLE__)
68 thread_affinity_policy_data_t policy = {cpu_id};
69 thread_port_t mach_thread = pthread_mach_thread_np(thread);
70 return thread_policy_set(mach_thread, THREAD_AFFINITY_POLICY, (thread_policy_t)&policy, 1);
71 #elif defined(AS_ALPINE)
74 CPU_SET(cpu_id, &cpuset);
75 return pthread_setaffinity_np(thread,
sizeof(cpu_set_t), &cpuset);
static int as_cpu_assign_thread(pthread_t thread, int cpu_id)
static int as_cpu_assign_thread_attr(pthread_attr_t *attr, int cpu_id)