aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.python/py-inferior.c
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2012-07-26 19:09:35 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2012-07-26 19:09:35 +0000
commitf66713d24ad2c0a2e3d0e480119716f6d75a837e (patch)
treecbb5467f0238ff6228fee5e1138031f2bec8509c /gdb/testsuite/gdb.python/py-inferior.c
parent8223e12c0883caa58d81f5ff6b7f1a17c7a53120 (diff)
downloadgdb-f66713d24ad2c0a2e3d0e480119716f6d75a837e.zip
gdb-f66713d24ad2c0a2e3d0e480119716f6d75a837e.tar.gz
gdb-f66713d24ad2c0a2e3d0e480119716f6d75a837e.tar.bz2
gdb/
* python/py-inferior.c (infpy_threads): Call update_thread_list (). gdb/testsuite/ * gdb.python/py-inferior.c (thread): New function. (check_threads): New function. (test_threads): New function. * gdb.python/py-inferior.exp: Added test. Replaced runto with continue to breakpoint.
Diffstat (limited to 'gdb/testsuite/gdb.python/py-inferior.c')
-rw-r--r--gdb/testsuite/gdb.python/py-inferior.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.python/py-inferior.c b/gdb/testsuite/gdb.python/py-inferior.c
index 04ec476..3ee9a46 100644
--- a/gdb/testsuite/gdb.python/py-inferior.c
+++ b/gdb/testsuite/gdb.python/py-inferior.c
@@ -2,9 +2,11 @@
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
+#include <pthread.h>
#define CHUNK_SIZE 16000 /* same as findcmd.c's */
#define BUF_SIZE (2 * CHUNK_SIZE) /* at least two chunks */
+#define NUMTH 8
int8_t int8_search_buf[100];
int16_t int16_search_buf[100];
@@ -43,8 +45,47 @@ init_bufs ()
memset (search_buf, 'x', search_buf_size);
}
+static void *
+thread (void *param)
+{
+ pthread_barrier_t *barrier = (pthread_barrier_t *) param;
+
+ pthread_barrier_wait (barrier);
+
+ return param;
+}
+
+static void
+check_threads (pthread_barrier_t *barrier)
+{
+ pthread_barrier_wait (barrier);
+}
+
+extern int
+test_threads (void)
+{
+ pthread_t threads[NUMTH];
+ pthread_barrier_t barrier;
+ int i;
+
+ pthread_barrier_init (&barrier, NULL, NUMTH + 1);
+
+ for (i = 0; i < NUMTH; ++i)
+ pthread_create (&threads[i], NULL, thread, &barrier);
+
+ check_threads (&barrier);
+
+ for (i = 0; i < NUMTH; ++i)
+ pthread_join (threads[i], NULL);
+
+ pthread_barrier_destroy (&barrier);
+
+ return 0;
+}
+
int main (int argc, char *argv[])
{
+ test_threads ();
init_bufs ();
return f1 (1, 2);