From 5caa086dc14cecf68d1a5c31e87ba1efb2c00893 Mon Sep 17 00:00:00 2001 From: Neil Horman Date: Thu, 15 Jul 2021 08:48:10 -0400 Subject: [PATCH] Allow for use of either pthread affinity set methods musl has support for pthread_setaffinity_np, but not pthread_attr_setaffinity_np. so check for hte existence of either function in configure, and use the appropriate one. Signed-off-by: Neil Horman [Retrieved from: https://github.com/nhorman/rng-tools/commit/5caa086dc14cecf68d1a5c31e87ba1efb2c00893] Signed-off-by: Fabrice Fontaine --- rngd_jitter.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/rngd_jitter.c b/rngd_jitter.c index ea29436..5c7e09e 100644 --- a/rngd_jitter.c +++ b/rngd_jitter.c @@ -67,12 +67,25 @@ static int rngd_notime_start(void *ctx, for(i=i-1;i>=0;i--) { CPU_SET(i,cpus); } - pthread_attr_setaffinity_np(&thread_ctx->notime_pthread_attr, cpusize, cpus); + /* + * Note that only one of: + * HAVE_PTHREAD_ATTR_SETAFFINITY + * and + * HAVE_PTHREAD_SETAFFINITY + * Will ever be set, as per the configure.ac logic + */ +#ifdef HAVE_PTHREAD_ATTR_SETAFFINITY + pthread_attr_setaffinity_np(&thread_ctx->notime_pthread_attr, cpusize, cpus); +#endif ret = -pthread_create(&thread_ctx->notime_thread_id, &thread_ctx->notime_pthread_attr, start_routine, arg); +#ifdef HAVE_PTHREAD_SETAFFINITY + pthread_setaffinity_np(&thread_ctx->notime_thread_id, cpusize, cpus); +#endif + CPU_FREE(cpus); return ret; }