開始ルーチン内の各スレッドのアフィニティを変更しようとしています。
これがコードです。以下のコードでは、「t」はpthread_create関数を介して渡される引数です。
cpu_set_t mask;
pthread_t c;
a = *((int *)t);
printf(" thread no. is %d \n",a);
CPU_ZERO(&mask);
a =a/2 + 1;
CPU_SET(a,&mask);
c=pthread_self();
s=pthread_setaffinity_np(c,sizeof(cpu_set_t), &mask);
if (s!=0)
handle_error_en(s,"pthread_setaffinity_np");
スレッドアフィニティは変更されていません。どこが間違っているのですか?