summary refs log tree commit diff
path: root/linuxthreads/Examples/ex17.c
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads/Examples/ex17.c')
-rw-r--r--linuxthreads/Examples/ex17.c112
1 files changed, 0 insertions, 112 deletions
diff --git a/linuxthreads/Examples/ex17.c b/linuxthreads/Examples/ex17.c
deleted file mode 100644
index 1bc09a5bda..0000000000
--- a/linuxthreads/Examples/ex17.c
+++ /dev/null
@@ -1,112 +0,0 @@
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <pthread.h>
-#include <unistd.h>
-#include <limits.h>
-#include <sys/mman.h>
-
-static pthread_mutex_t synch = PTHREAD_MUTEX_INITIALIZER;
-
-static void *
-test_thread (void *v_param)
-{
-  pthread_mutex_lock (&synch);
-  return NULL;
-}
-
-#define STACKSIZE 0x100000
-
-int
-main (void)
-{
-  pthread_t thread;
-  pthread_attr_t attr;
-  int status;
-  void *stack, *stack2;
-  size_t stacksize;
-
-  pthread_attr_init (&attr);
-  stack = mmap (NULL, STACKSIZE,
-		PROT_READ | PROT_WRITE | PROT_EXEC,
-		MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-
-  if (stack == MAP_FAILED)
-    {
-      perror ("mmap failed");
-      return 1;
-    }
-
-  status = pthread_attr_setstack (&attr, stack, STACKSIZE);
-  if (status != 0)
-    {
-      printf ("pthread_attr_setstack failed: %s\n", strerror (status));
-      return 1;
-    }
-
-  status = pthread_attr_getstack (&attr, &stack2, &stacksize);
-  if (status != 0)
-    {
-      printf ("pthread_attr_getstack failed: %s\n", strerror (status));
-      return 1;
-    }
-
-  if (stack2 != stack || stacksize != STACKSIZE)
-    {
-      printf ("first pthread_attr_getstack returned different stack (%p,%zx)\n"
-	      "than was set by setstack (%p,%x)\n",
-	      stack2, stacksize, stack, STACKSIZE);
-      return 2;
-    }
-
-  status = pthread_mutex_lock (&synch);
-  if (status != 0)
-    {
-      printf ("cannot get lock: %s\n", strerror (status));
-      return 1;
-    }
-
-  status = pthread_create (&thread, &attr, test_thread, NULL);
-  if (status != 0)
-    {
-      printf ("pthread_create failed: %s\n", strerror (status));
-      return 1;
-    }
-
-  status = pthread_getattr_np (thread, &attr);
-  if (status != 0)
-    {
-      printf ("pthread_getattr_np failed: %s\n", strerror (status));
-      return 1;
-    }
-
-  status = pthread_attr_getstack (&attr, &stack2, &stacksize);
-  if (status != 0)
-    {
-      printf ("pthread_attr_getstack failed: %s\n", strerror (status));
-      return 1;
-    }
-
-  if (stack2 != stack || stacksize != STACKSIZE)
-    {
-      printf ("second pthread_attr_getstack returned different stack (%p,%zx)\n"
-	      "than was set by setstack (%p,%x)\n",
-	      stack2, stacksize, stack, STACKSIZE);
-      return 3;
-    }
-
-  status = pthread_mutex_unlock (&synch);
-  if (status != 0)
-    {
-      printf ("cannot release lock: %s\n", strerror (status));
-      return 1;
-    }
-
-  /* pthread_detach (thread); */
-  if (pthread_join (thread, NULL) != 0)
-    {
-      printf ("join failed\n");
-      return 1;
-    }
-  return 0;
-}