/* Loop long enough for GDB to send a few signals of its own, but
don't hang around eating CPU forever if something goes wrong during
testing. */
-#define NSIGS 1000000
+#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);