From f66713d24ad2c0a2e3d0e480119716f6d75a837e Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Thu, 26 Jul 2012 19:09:35 +0000 Subject: 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. --- gdb/testsuite/gdb.python/py-inferior.c | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'gdb/testsuite/gdb.python/py-inferior.c') 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 #include #include +#include #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); -- cgit v1.1