aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.threads/step.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.threads/step.c')
-rw-r--r--gdb/testsuite/gdb.threads/step.c221
1 files changed, 0 insertions, 221 deletions
diff --git a/gdb/testsuite/gdb.threads/step.c b/gdb/testsuite/gdb.threads/step.c
deleted file mode 100644
index 1b18a4b..0000000
--- a/gdb/testsuite/gdb.threads/step.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/* step.c for step.exp */
-#include <ipc.h>
-#include <pthread.h>
-#include <st.h>
-#include <signal.h>
-#include <stdio.h>
-
-void alarm_handler ();
-void alarm_handler1 ();
-void alarm_handler2 ();
-void thread1 ();
-void thread2 ();
-
-#define TIME_LIMIT 30
-
-
-int count1 = 0;
-int count2 = 0;
-
-pthread_t tid1, tid2;
-pthread_attr_t attr1, attr2;
-
-pthread_mutex_t mut;
-pthread_mutexattr_t mut_attr;
-
-pthread_condattr_t cv_attr_a, cv_attr_b;
-pthread_cond_t cv_a, cv_b;
-
-struct cv_struct
- {
- char a;
- char b;
- }
-test_struct;
-
-main ()
-{
- /*init la struct */
- test_struct.a = 0;
- test_struct.b = 1;
-
- /* create le mutex */
- if (pthread_mutexattr_create (&mut_attr) == -1)
- {
- perror ("mutexattr_create");
- exit (1);
- }
-
-
- if (pthread_mutex_init (&mut, mut_attr) == -1)
- {
- perror ("mutex_init");
- exit (1);
- }
-
- /* create 2 cv */
- if (pthread_condattr_create (&cv_attr_a) == -1)
- {
- perror ("condattr_create(1)");
- exit (1);
- }
-
- if (pthread_cond_init (&cv_a, cv_attr_a) == -1)
- {
- perror ("cond_init(1)");
- exit (1);
- }
-
- if (pthread_condattr_create (&cv_attr_b) == -1)
- {
- perror ("condattr_create(2)");
- exit (1);
- }
-
- if (pthread_cond_init (&cv_b, cv_attr_b) == -1)
- {
- perror ("cond_init(2)");
- exit (1);
- }
-
- /* create 2 threads of execution */
- if (pthread_attr_create (&attr1) == -1)
- {
- perror ("attr_create(1)");
- exit (1);
- }
-
- if (pthread_create (&tid1, attr1, thread1, &count1) == -1)
- {
- perror ("pthread_create(1)");
- exit (1);
- }
-
- if (pthread_attr_create (&attr2) == -1)
- {
- perror ("attr_create(2)");
- exit (1);
- }
-
- if (pthread_create (&tid2, attr2, thread2, &count2) == -1)
- {
- perror ("pthread_create(2)");
- exit (1);
- }
-
- /* set alarm to print out data and exit */
- signal (SIGALRM, alarm_handler);
- alarm (TIME_LIMIT);
-
- for (;;)
- pause ();
-}
-
-void
-thread1 (count)
- int *count;
-{
- tid_t tid;
-
- tid = getstid ();
- printf ("Thread1 tid 0x%x (%d) \n", tid, tid);
- printf ("Thread1 @tid=0x%x \n", &tid);
- signal (SIGALRM, alarm_handler1);
-
- for (;;)
- {
- if (pthread_mutex_lock (&mut) == -1)
- {
- perror ("pthread_mutex_lock(1)");
- pthread_exit ((void *) 0);
- }
-
- while (test_struct.a == 0)
- {
- if (pthread_cond_wait (&cv_a, &mut) == -1)
- {
- perror ("pthread_cond_wait(1)");
- pthread_exit ((void *) -1);
- }
- }
-
- (*count)++;
- printf ("*******thread1 count %d\n", *count);
-
- test_struct.a = 0;
-
- test_struct.b = 1;
- pthread_cond_signal (&cv_b);
-
- if (pthread_mutex_unlock (&mut) == -1)
- {
- perror ("pthread_mutex_unlock(1)");
- pthread_exit ((void *) -1);
- }
- }
-}
-
-void
-thread2 (count)
- int *count;
-{
- tid_t tid;
-
- tid = getstid ();
- printf ("Thread2 tid 0x%x (%d) \n", tid, tid);
- printf ("Thread1 @tid=0x%x \n", &tid);
- signal (SIGALRM, alarm_handler2);
-
- for (;;)
- {
- if (pthread_mutex_lock (&mut) == -1)
- {
- perror ("pthread_mutex_lock(2)");
- pthread_exit ((void *) 0);
- }
-
- while (test_struct.b == 0)
- {
- if (pthread_cond_wait (&cv_b, &mut) == -1)
- {
- perror ("pthread_cond_wait(2)");
- pthread_exit ((void *) -1);
- }
- }
-
- (*count)++;
- printf ("*******thread2 count %d\n", *count);
-
- test_struct.b = 0;
-
- test_struct.a = 1;
- pthread_cond_signal (&cv_a);
-
- if (pthread_mutex_unlock (&mut) == -1)
- {
- perror ("pthread_mutex_unlock(2)");
- pthread_exit ((void *) -1);
- }
- }
-}
-
-
-void
-alarm_handler ()
-{
- printf ("\tcount1 (%d) \n\tcount2 (%d)\n", count1, count2);
- exit (0);
-}
-
-void
-alarm_handler1 ()
-{
- printf ("ALARM thread 1\n");
-}
-
-void
-alarm_handler2 ()
-{
- printf ("ALARM thread 2\n");
- pthread_exit ((void *) 0);
-}