#include "util/os_time.h"
#include "util/u_string.h"
#include "util/u_thread.h"
-#include "process.h"
+#include "u_process.h"
static void util_queue_killall_and_wait(struct util_queue *queue);
free(input);
- if (queue->name) {
+#ifdef HAVE_PTHREAD_SETAFFINITY
+ if (queue->flags & UTIL_QUEUE_INIT_SET_FULL_THREAD_AFFINITY) {
+ /* Don't inherit the thread affinity from the parent thread.
+ * Set the full mask.
+ */
+ cpu_set_t cpuset;
+ CPU_ZERO(&cpuset);
+ for (unsigned i = 0; i < CPU_SETSIZE; i++)
+ CPU_SET(i, &cpuset);
+
+ pthread_setaffinity_np(pthread_self(), sizeof(cpuset), &cpuset);
+ }
+#endif
+
+ if (strlen(queue->name) > 0) {
char name[16];
util_snprintf(name, sizeof(name), "%s%i", queue->name, thread_index);
- puts(name);
u_thread_setname(name);
}
memset(queue, 0, sizeof(*queue));
if (process_len) {
- snprintf(queue->name, sizeof(queue->name), "%.*s:%s",
- process_len, process_name, name);
+ util_snprintf(queue->name, sizeof(queue->name), "%.*s:%s",
+ process_len, process_name, name);
} else {
- snprintf(queue->name, sizeof(queue->name), "%s", name);
+ util_snprintf(queue->name, sizeof(queue->name), "%s", name);
}
queue->flags = flags;