summaryrefslogtreecommitdiff
path: root/src/git
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2008-12-31 13:16:31 -0800
committerShawn O. Pearce <spearce@spearce.org>2008-12-31 13:16:31 -0800
commitd44cfd460e2c52d67dea14838b03219967cf9cb9 (patch)
tree01316e2444ef01a3a2939d6d891b1c7ee49bd05d /src/git
parent4260699b37a7a0cc6be231d232d424a858a7d111 (diff)
downloadlibgit2-d44cfd460e2c52d67dea14838b03219967cf9cb9.tar.gz
Cleanup our header inclusion order to ensure pthread.h is early
If we are using threads we need to make sure pthread.h comes in before just about anything else. Some platforms enable macros that alter what other headers define. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'src/git')
-rw-r--r--src/git/thread-utils.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/git/thread-utils.h b/src/git/thread-utils.h
index 8baf75bed..241514f3a 100644
--- a/src/git/thread-utils.h
+++ b/src/git/thread-utils.h
@@ -8,10 +8,10 @@
*/
#define GIT_HAS_TLS 1
+#define GIT_HAS_PTHREAD 1
#if defined(__APPLE__) && defined(__MACH__)
# undef GIT_TLS
-# define GIT_HAS_PTHREAD
#elif defined(__GNUC__) || \
defined(__SUNPRO_C) || \
@@ -23,6 +23,7 @@
#elif defined(__INTEL_COMPILER)
# if defined(_WIN32) || defined(_WIN32_CE)
# define GIT_TLS __declspec(thread)
+# undef GIT_HAS_PTHREAD
# else
# define GIT_TLS __thread
# endif
@@ -31,9 +32,11 @@
defined(_WIN32_CE) || \
defined(__BORLANDC__)
# define GIT_TLS __declspec(thread)
+# undef GIT_HAS_PTHREAD
#else
# undef GIT_HAS_TLS
+# undef GIT_HAS_PTHREAD
# define GIT_TLS /* nothing: tls vars are thread-global */
#endif
@@ -44,4 +47,10 @@
# define GIT_TLS
#endif
+#ifdef GIT_HAS_PTHREAD
+# define GIT_THREADS 1
+#else
+# undef GIT_THREADS
+#endif
+
#endif /* INCLUDE_git_thread_utils_h__ */