Hello all,
I think that no one tried it for a long time but I needed a single-threaded git version for debug purpose. I tried to build with -DNO_PTHREADS and thread-utils.c failed to compile.
In brief the situation is the following:
in header file we have something like that:
#ifndef NO_PTHREAD
extern int online_cpus(void);
#else
#define online_cpus() 1
#endif // NO_PTHREAD
and in *.c file:
int online_cpus(void)
{
// ...
}
So the compilation fails with:
test.c:3:21: error: macro "online_cpus" passed 1 arguments, but takes just 0
int online_cpus(void)
That's a tiny issue, but maybe we could apply a straight-forward solution (see attached diff)? If you agree I'll prepare a properly-formatted [PATCH] submit.
--
Best Regards,
Victor
diff --git a/thread-utils.c b/thread-utils.c
index a2135e0..f3e90fb 100644
--- a/thread-utils.c
+++ b/thread-utils.c
@@ -20,6 +20,7 @@
int online_cpus(void)
{
+#ifndef NO_PTHREADS
#ifdef _SC_NPROCESSORS_ONLN
long ncpus;
#endif
@@ -58,11 +59,13 @@ int online_cpus(void)
return (int)ncpus;
#endif
+#endif
return 1;
}
int init_recursive_mutex(pthread_mutex_t *m)
{
+#ifndef NO_PTHREADS
pthread_mutexattr_t a;
int ret;
@@ -74,4 +77,7 @@ int init_recursive_mutex(pthread_mutex_t *m)
pthread_mutexattr_destroy(&a);
}
return ret;
+#else
+ return 0;
+#endif
}
diff --git a/thread-utils.h b/thread-utils.h
index d9a769d..6fb98c3 100644
--- a/thread-utils.h
+++ b/thread-utils.h
@@ -7,9 +7,5 @@
extern int online_cpus(void);
extern int init_recursive_mutex(pthread_mutex_t*);
-#else
-
-#define online_cpus() 1
-
#endif
#endif /* THREAD_COMPAT_H */