diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2012-07-26 19:09:35 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2012-07-26 19:09:35 +0000 |
commit | f66713d24ad2c0a2e3d0e480119716f6d75a837e (patch) | |
tree | cbb5467f0238ff6228fee5e1138031f2bec8509c /gdb/testsuite/gdb.python/py-inferior.c | |
parent | 8223e12c0883caa58d81f5ff6b7f1a17c7a53120 (diff) | |
download | gdb-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.c | 41 |
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); |