in_parent = 1;
}
-#if !defined(USE_THREAD) && defined(USE_CPU_AFFINITY)
- if (!in_parent && ha_cpuset_count(&cpu_map[0].thread[0])) { /* only do this if the process has a CPU map */
-
-#if defined(CPUSET_USE_CPUSET) || defined(__DragonFly__)
- struct hap_cpuset *set = &cpu_map[0].thread[0];
- sched_setaffinity(0, sizeof(set->cpuset), &set->cpuset);
-#elif defined(__FreeBSD__)
- struct hap_cpuset *set = &cpu_map[0].thread[0];
- ret = cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, -1, sizeof(set->cpuset), &set->cpuset);
-#endif
- }
-#endif
/* close the pidfile both in children and father */
if (pidfd >= 0) {
//lseek(pidfd, 0, SEEK_SET); /* debug: emulate eglibc bug */
fork_poller();
}
+ /* Note that here we can't be in the parent/master anymore */
+#if !defined(USE_THREAD) && defined(USE_CPU_AFFINITY)
+ if (ha_cpuset_count(&cpu_map[0].thread[0])) { /* only do this if the process has a CPU map */
+
+#if defined(CPUSET_USE_CPUSET) || defined(__DragonFly__)
+ struct hap_cpuset *set = &cpu_map[0].thread[0];
+ sched_setaffinity(0, sizeof(set->cpuset), &set->cpuset);
+#elif defined(__FreeBSD__)
+ struct hap_cpuset *set = &cpu_map[0].thread[0];
+ ret = cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, -1, sizeof(set->cpuset), &set->cpuset);
+#endif
+ }
+#endif
/* try our best to re-enable core dumps depending on system capabilities.
* What is addressed here :
* - remove file size limits