2
開始ルーチン内の各スレッドの親和性を変更しようとしています。Pthread_setaffinity_npが無効な引数
ここにコードがあります。以下のコードでは、 '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");
スレッドアフィニティは変更されていません。どこが間違っていますか?
ところで、switch文全体を 'CPU_SET((a/2 + 1)、&mask);'に置き換えることができます。 –
Ohhありがとう...:P – akhil28288
おそらく、 a = 2/1 + CPU_SET(a、&mask); '。 –