summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2016-01-09 16:18:55 +0100
committerRémi Verschelde <remi@verschelde.fr>2016-01-09 16:18:55 +0100
commit662ed9ca8dc934d35a8a7cf1ab6a8f7404df3ba4 (patch)
tree741aaa29d28a3d7578554a32fddca4fa66613250
parent9e143a52ba93243da55d425bd5dd3b9110d6bc2e (diff)
parenta6c1a5c6d0a1fd92fff3e499ce44ee4b0c5d1db3 (diff)
Merge pull request #3293 from eska014/fix-fbsd-pthread
Fix build (pthread renaming) on Open/FreeBSD
-rw-r--r--drivers/unix/thread_posix.cpp11
-rw-r--r--platform/x11/platform_config.h1
2 files changed, 11 insertions, 1 deletions
diff --git a/drivers/unix/thread_posix.cpp b/drivers/unix/thread_posix.cpp
index 21bd95eade..bd33c81298 100644
--- a/drivers/unix/thread_posix.cpp
+++ b/drivers/unix/thread_posix.cpp
@@ -30,6 +30,10 @@
#if defined(UNIX_ENABLED) || defined(PTHREAD_ENABLED)
+#ifdef PTHREAD_BSD_SET_NAME
+#include <pthread_np.h>
+#endif
+
#include "os/memory.h"
Thread::ID ThreadPosix::get_ID() const {
@@ -100,9 +104,14 @@ Error ThreadPosix::set_name(const String& p_name) {
#else
+ #ifdef PTHREAD_BSD_SET_NAME
+ pthread_set_name_np(pthread, p_name.utf8().get_data());
+ int err = 0; // Open/FreeBSD ignore errors in this function
+ #else
int err = pthread_setname_np(pthread, p_name.utf8().get_data());
+ #endif // PTHREAD_BSD_SET_NAME
- #endif
+ #endif // PTHREAD_RENAME_SELF
return err == 0 ? OK : ERR_INVALID_PARAMETER;
diff --git a/platform/x11/platform_config.h b/platform/x11/platform_config.h
index 5a333f4a0d..aac50c27c2 100644
--- a/platform/x11/platform_config.h
+++ b/platform/x11/platform_config.h
@@ -31,6 +31,7 @@
#endif
#if defined(__FreeBSD__) || defined(__OpenBSD__)
#include <stdlib.h>
+#define PTHREAD_BSD_SET_NAME
#endif
#define GLES2_INCLUDE_H "gl_context/glew.h"