From 957157deebd5eea63eaa8993f47740c2b2cd2592 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Fri, 25 Jun 2010 10:12:58 +0200 Subject: test/nptl: move eintr.c to where it belongs Signed-off-by: Bernhard Reutner-Fischer --- libpthread/nptl/eintr.c | 89 ------------------------------------------------- test/nptl/eintr.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 89 deletions(-) delete mode 100644 libpthread/nptl/eintr.c create mode 100644 test/nptl/eintr.c diff --git a/libpthread/nptl/eintr.c b/libpthread/nptl/eintr.c deleted file mode 100644 index 933c5d81b..000000000 --- a/libpthread/nptl/eintr.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Copyright (C) 2003 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2003. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include -#include -#include - - -static int the_sig; - - -static void -eintr_handler (int sig) -{ - if (sig != the_sig) - { - write (STDOUT_FILENO, "eintr_handler: signal number wrong\n", 35); - _exit (1); - } - write (STDOUT_FILENO, ".", 1); -} - - -static void * -eintr_source (void *arg) -{ - struct timespec ts = { .tv_sec = 0, .tv_nsec = 500000 }; - - if (arg == NULL) - { - sigset_t ss; - sigemptyset (&ss); - sigaddset (&ss, the_sig); - pthread_sigmask (SIG_BLOCK, &ss, NULL); - } - - while (1) - { - if (arg != NULL) - pthread_kill (*(pthread_t *) arg, the_sig); - else - kill (getpid (), the_sig); - - nanosleep (&ts, NULL); - } - - /* NOTREACHED */ - return NULL; -} - - -static void -setup_eintr (int sig, pthread_t *thp) -{ - struct sigaction sa; - sigemptyset (&sa.sa_mask); - sa.sa_flags = 0; - sa.sa_handler = eintr_handler; - if (sigaction (sig, &sa, NULL) != 0) - { - puts ("setup_eintr: sigaction failed"); - exit (1); - } - the_sig = sig; - - /* Create the thread which will fire off the signals. */ - pthread_t th; - if (pthread_create (&th, NULL, eintr_source, thp) != 0) - { - puts ("setup_eintr: pthread_create failed"); - exit (1); - } -} diff --git a/test/nptl/eintr.c b/test/nptl/eintr.c new file mode 100644 index 000000000..933c5d81b --- /dev/null +++ b/test/nptl/eintr.c @@ -0,0 +1,89 @@ +/* Copyright (C) 2003 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2003. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include +#include + + +static int the_sig; + + +static void +eintr_handler (int sig) +{ + if (sig != the_sig) + { + write (STDOUT_FILENO, "eintr_handler: signal number wrong\n", 35); + _exit (1); + } + write (STDOUT_FILENO, ".", 1); +} + + +static void * +eintr_source (void *arg) +{ + struct timespec ts = { .tv_sec = 0, .tv_nsec = 500000 }; + + if (arg == NULL) + { + sigset_t ss; + sigemptyset (&ss); + sigaddset (&ss, the_sig); + pthread_sigmask (SIG_BLOCK, &ss, NULL); + } + + while (1) + { + if (arg != NULL) + pthread_kill (*(pthread_t *) arg, the_sig); + else + kill (getpid (), the_sig); + + nanosleep (&ts, NULL); + } + + /* NOTREACHED */ + return NULL; +} + + +static void +setup_eintr (int sig, pthread_t *thp) +{ + struct sigaction sa; + sigemptyset (&sa.sa_mask); + sa.sa_flags = 0; + sa.sa_handler = eintr_handler; + if (sigaction (sig, &sa, NULL) != 0) + { + puts ("setup_eintr: sigaction failed"); + exit (1); + } + the_sig = sig; + + /* Create the thread which will fire off the signals. */ + pthread_t th; + if (pthread_create (&th, NULL, eintr_source, thp) != 0) + { + puts ("setup_eintr: pthread_create failed"); + exit (1); + } +} -- cgit v1.2.3