On Tue, 18 May 2021, Jonathan Schwender wrote: > Move error handling for setting the affinity of the main thread > into a separate function. > This prevents duplicating the code in the next commit, > where the main thread pid can be restricted to one of > two bitmasks depending on the passed parameters. > > Signed-off-by: Jonathan Schwender <schwenderjonathan@xxxxxxxxx> > --- > src/cyclictest/cyclictest.c | 19 ++++++++++++------- > 1 file changed, 12 insertions(+), 7 deletions(-) > > diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c > index 59dda19..3bab3b2 100644 > --- a/src/cyclictest/cyclictest.c > +++ b/src/cyclictest/cyclictest.c > @@ -1768,6 +1768,17 @@ static void write_stats(FILE *f, void *data) > fprintf(f, " }\n"); > } > How about set_thread_affinity() since you want to use the function for the main thread plus other threads. > +static void set_main_thread_affinity(struct bitmask *cpumask) > +{ > + int res; > + > + errno = 0; > + res = numa_sched_setaffinity(getpid(), cpumask); > + if (res != 0) > + warn("Couldn't setaffinity in main thread: %s\n", > + strerror(errno)); > +} > + > int main(int argc, char **argv) > { > sigset_t sigset; > @@ -1792,13 +1803,7 @@ int main(int argc, char **argv) > > /* Restrict the main pid to the affinity specified by the user */ > if (affinity_mask != NULL) { > - int res; > - > - errno = 0; > - res = numa_sched_setaffinity(getpid(), affinity_mask); > - if (res != 0) > - warn("Couldn't setaffinity in main thread: %s\n", strerror(errno)); > - > + set_main_thread_affinity(affinity_mask); > if (verbose) > printf("Using %u cpus.\n", > numa_bitmask_weight(affinity_mask)); > -- > 2.31.1 > >