+2008-01-29 Jim Blandy <jimb@red-bean.com>
+
+ * gdb.threads/sigthread.c: Use barriers to ensure that
+ child_thread and child_thread_two are always initialized before we
+ start to use them.
+
2008-01-29 Vladimir Prus <vladimir@codesourcery.com>
* gdb.base/watchpoint-solib.exp: New.
testing. */
#define NSIGS 10000000
+pthread_barrier_t barrier;
+
void
handler (int sig)
{
{
int i;
+ pthread_barrier_wait (&barrier);
+
for (i = 0; i < NSIGS; i++)
pthread_kill (child_thread, SIGUSR1);
}
{
int i;
+ pthread_barrier_wait (&barrier);
+
for (i = 0; i < NSIGS; i++)
pthread_kill (child_thread_two, SIGUSR2);
}
signal (SIGUSR1, handler);
signal (SIGUSR2, handler);
+ pthread_barrier_init (&barrier, NULL, 3);
+
main_thread = pthread_self ();
pthread_create (&child_thread, NULL, thread_function, NULL);
pthread_create (&child_thread_two, NULL, child_two, NULL);
+ pthread_barrier_wait (&barrier);
+
for (i = 0; i < NSIGS; i++)
pthread_kill (child_thread_two, SIGUSR1);