45 case 0: { 46 printf("CHILD CORE:%d:",sched_getcpu()); 65 default: { 66 printf("PARENT CORE:%d:",sched_getcpu());
switch (fork()) { case -1: /* Error */ err(EXIT_FAILURE, "fork"); case 0: /* Child */ CPU_SET(childCPU, &set); if (sched_setaffinity(getpid(), sizeof(set), &set) == -1) err(EXIT_FAILURE, "sched_setaffinity"); for (unsigned int j = 0; j < nloops; j++) getppid(); exit(EXIT_SUCCESS); default: /* Parent */ CPU_SET(parentCPU, &set); if (sched_setaffinity(getpid(), sizeof(set), &set) == -1) err(EXIT_FAILURE, "sched_setaffinity"); for (unsigned int j = 0; j < nloops; j++) getppid(); wait(NULL); /* Wait for child to terminate */ exit(EXIT_SUCCESS); }