diff --git a/m4/efl_threads.m4 b/m4/efl_threads.m4 index 4ed9ff25a9..52631f7c1a 100644 --- a/m4/efl_threads.m4 +++ b/m4/efl_threads.m4 @@ -56,6 +56,9 @@ pthread_barrier_init(&barrier, NULL, 1); #include #include #include +#ifndef __linux__ +#include +#endif ]], [[ pthread_attr_setaffinity_np(NULL, 0, NULL); @@ -67,9 +70,16 @@ pthread_attr_setaffinity_np(NULL, 0, NULL); #define _GNU_SOURCE #include #include +#ifndef __linux__ +#include +#endif ]], [[ +#ifndef __linux__ +pthread_set_name_np(NULL, NULL); +#else pthread_setname_np(NULL, NULL); +#endif ]])], [efl_have_setname="yes"], [efl_have_setname="no"]) diff --git a/src/lib/eina/eina_thread.c b/src/lib/eina/eina_thread.c index 3d64f5a9fe..3216719a95 100644 --- a/src/lib/eina/eina_thread.c +++ b/src/lib/eina/eina_thread.c @@ -35,6 +35,13 @@ # include # include +#ifdef EINA_HAVE_PTHREAD_AFFINITY +#ifndef __linux__ +#include +#define cpu_set_t cpuset_t +#endif +#endif + static inline void * _eina_thread_join(Eina_Thread t) { @@ -181,7 +188,15 @@ eina_thread_name_set(Eina_Thread t, const char *name) buf[15] = 0; } else buf[0] = 0; +#ifndef __linux__ + pthread_set_name_np((pthread_t)t, buf); + return EINA_TRUE; +#else if (pthread_setname_np((pthread_t)t, buf) == 0) return EINA_TRUE; +#endif +#else + (void)t; + (void)name; #endif return EINA_FALSE; }