aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.threads/schedlock.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2002-08-23 20:32:02 +0000
committerDaniel Jacobowitz <drow@false.org>2002-08-23 20:32:02 +0000
commit0312286c94c3e88ca30ea61f5fe60e4fb24d0aa1 (patch)
tree1def8837e87bad86f71612e6deb620deaa1899d7 /gdb/testsuite/gdb.threads/schedlock.c
parent17574093376ff1d43171705f24d3039ab37ff7b4 (diff)
downloadgdb-0312286c94c3e88ca30ea61f5fe60e4fb24d0aa1.zip
gdb-0312286c94c3e88ca30ea61f5fe60e4fb24d0aa1.tar.gz
gdb-0312286c94c3e88ca30ea61f5fe60e4fb24d0aa1.tar.bz2
* gdb.threads/print-threads.c: New file.
* gdb.threads/print-threads.exp: New file. * gdb.threads/schedlock.c: New file. * gdb.threads/schedlock.exp: New file.
Diffstat (limited to 'gdb/testsuite/gdb.threads/schedlock.c')
-rw-r--r--gdb/testsuite/gdb.threads/schedlock.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.threads/schedlock.c b/gdb/testsuite/gdb.threads/schedlock.c
new file mode 100644
index 0000000..df361d0
--- /dev/null
+++ b/gdb/testsuite/gdb.threads/schedlock.c
@@ -0,0 +1,44 @@
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <pthread.h>
+
+void *thread_function(void *arg); /* Pointer to function executed by each thread */
+
+#define NUM 5
+
+int args[NUM+1];
+
+int main() {
+ int res;
+ pthread_t threads[NUM];
+ void *thread_result;
+ int i;
+
+ for (i = 0; i < NUM; i++)
+ {
+ args[i] = 1;
+ res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
+ }
+
+ /* schedlock.exp: last thread start. */
+ args[i] = 1;
+ thread_function ((void *) i);
+
+ exit(EXIT_SUCCESS);
+}
+
+void *thread_function(void *arg) {
+ int my_number = (int) arg;
+ int *myp = &args[my_number];
+
+ /* Don't run forever. Run just short of it :) */
+ while (*myp > 0)
+ {
+ /* schedlock.exp: main loop. */
+ (*myp) ++;
+ }
+
+ pthread_exit(NULL);
+}
+