Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Unity-Technologies/libatomic_ops.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGilles Talis <gilles.talis@gmail.com>2013-05-26 12:08:18 +0400
committerIvan Maidanski <ivmai@mail.ru>2013-05-26 12:08:18 +0400
commit7dfd0b71ee8d1c8409d2f09ad3ccfcb467f16d6b (patch)
treea4fa399fae5a716b2a03377ccd9357aafa275706
parentce4a44ca4a1acfb2f6ee44d52993d894dffe7b6f (diff)
Enable build using toolchain without pthreads
* src/atomic_ops.c: Include pthread.h only if not AO_NO_PTHREADS (new macro). * src/atomic_ops.c (AO_pt_lock): Define only unless AO_NO_PTHREADS. * tests/test_atomic.c (main): Skip test_atomic_pthreads if both AO_NO_PTHREADS and AO_USE_PTHREAD_DEFS are defined (preventing test link failure if AO_NO_PTHREADS passed via CFLAGS).
-rw-r--r--src/atomic_ops.c13
-rw-r--r--tests/test_atomic.c12
2 files changed, 19 insertions, 6 deletions
diff --git a/src/atomic_ops.c b/src/atomic_ops.c
index 3017fc4..30dd21c 100644
--- a/src/atomic_ops.c
+++ b/src/atomic_ops.c
@@ -49,7 +49,9 @@
#if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(__BORLANDC__) \
|| defined(AO_USE_NO_SIGNALS)
-#include <pthread.h>
+#ifndef AO_NO_PTHREADS
+# include <pthread.h>
+#endif
#ifndef AO_USE_NO_SIGNALS
# include <signal.h>
@@ -71,11 +73,10 @@
# include "atomic_ops/sysdeps/standard_ao_double_t.h"
#endif
-/*
- * Lock for pthreads-based implementation.
- */
-
-pthread_mutex_t AO_pt_lock = PTHREAD_MUTEX_INITIALIZER;
+/* Lock for pthreads-based implementation. */
+#ifndef AO_NO_PTHREADS
+ pthread_mutex_t AO_pt_lock = PTHREAD_MUTEX_INITIALIZER;
+#endif
/*
* Out of line compare-and-swap emulation based on test and set.
diff --git a/tests/test_atomic.c b/tests/test_atomic.c
index 6ce690a..980fb6b 100644
--- a/tests/test_atomic.c
+++ b/tests/test_atomic.c
@@ -15,6 +15,16 @@
# include "config.h"
#endif
+#if defined(AO_NO_PTHREADS) && defined(AO_USE_PTHREAD_DEFS)
+# include <stdio.h>
+
+ int main(void)
+ {
+ printf("test skipped\n");
+ return 0;
+ }
+
+#else
#include "run_parallel.h"
@@ -190,3 +200,5 @@ int main(void)
# endif
return 0;
}
+
+#endif /* !AO_NO_PTHREADS || !AO_USE_PTHREAD_DEFS */