3 #include <sys/syscall.h>
11 static volatile unsigned int corecount=0;
14 static inline int atomicinc(volatile unsigned int *lock) {
16 __asm__ __volatile__("lock; xadd %0,%1"
18 : "m"(*lock), "0"(retval)
30 int ourcount=atomicinc(&corecount);
32 int newvalue=ourcount>>1;
37 CPU_SET(newvalue, &cpumask);
39 err = sched_setaffinity(syscall(SYS_gettid), sizeof(cpu_set_t), &cpumask);
42 printf("set_affinity: %s\n", strerror(errno));