summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@osg.samsung.com>2015-09-11 13:37:53 +0100
committerDaniel Kolesa <d.kolesa@osg.samsung.com>2015-09-11 13:50:03 +0100
commit8f62e4f7cef8ddc7caec5567e012c59cb44f68c3 (patch)
treec765afc704b5fc580560df04b8197d0d988c7206
parent14b2ba7bed1409d7f95665bb0f1122714c5b444a (diff)
downloadefl-8f62e4f7cef8ddc7caec5567e012c59cb44f68c3.tar.gz
eina_thread: non-linux fixes following latest changes
-rw-r--r--m4/efl_threads.m410
-rw-r--r--src/lib/eina/eina_thread.c15
2 files changed, 25 insertions, 0 deletions
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 <stdlib.h>
#include <pthread.h>
#include <sched.h>
+#ifndef __linux__
+#include <pthread_np.h>
+#endif
]],
[[
pthread_attr_setaffinity_np(NULL, 0, NULL);
@@ -67,9 +70,16 @@ pthread_attr_setaffinity_np(NULL, 0, NULL);
#define _GNU_SOURCE
#include <stdlib.h>
#include <pthread.h>
+#ifndef __linux__
+#include <pthread_np.h>
+#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 <pthread.h>
# include <errno.h>
+#ifdef EINA_HAVE_PTHREAD_AFFINITY
+#ifndef __linux__
+#include <pthread_np.h>
+#define cpu_set_t cpuset_t
+#endif
+#endif
+
static inline void *
_eina_thread_join(Eina_Thread t)
{
@@ -181,8 +188,16 @@ 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;
}