summaryrefslogtreecommitdiff
path: root/Modules/CheckForPthreads.c
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/CheckForPthreads.c')
-rw-r--r--Modules/CheckForPthreads.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/Modules/CheckForPthreads.c b/Modules/CheckForPthreads.c
new file mode 100644
index 000000000..d83107851
--- /dev/null
+++ b/Modules/CheckForPthreads.c
@@ -0,0 +1,38 @@
+#include <stdio.h>
+#include <pthread.h>
+#include <unistd.h>
+
+void* runner(void*);
+
+int res = 0;
+#ifdef __CLASSIC_C__
+int main(){
+ int ac;
+ char*av[];
+#else
+int main(int ac, char*av[]){
+#endif
+ pthread_t tid[2];
+ pthread_create(&tid[0], 0, runner, (void*)1);
+ pthread_create(&tid[1], 0, runner, (void*)2);
+
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__) // (no usleep on BeOS 5.)
+ usleep(1); // for strange behavior on single-processor sun
+#endif
+
+ pthread_join(tid[0], 0);
+ pthread_join(tid[1], 0);
+ if(ac > 1000){return *av[0];}
+ return res;
+}
+
+void* runner(void* args)
+{
+ int cc;
+ for ( cc = 0; cc < 10; cc ++ )
+ {
+ printf("%d CC: %d\n", (int)args, cc);
+ }
+ res ++;
+ return 0;
+}