aboutsummaryrefslogtreecommitdiff
path: root/nptl/tst-robust9.c
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2020-02-16 14:30:17 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2020-02-16 14:43:54 +0000
commita25077a431758b30aa60103945fe70811e8207ef (patch)
treec4d0fd554de8697c129b937c359f07a0f2a6af28 /nptl/tst-robust9.c
parentf640c4231df53aecd5880b4a172981e633de2718 (diff)
downloadglibc-a25077a431758b30aa60103945fe70811e8207ef.zip
glibc-a25077a431758b30aa60103945fe70811e8207ef.tar.gz
glibc-a25077a431758b30aa60103945fe70811e8207ef.tar.bz2
pthread: Move robust mutex tests from nptl to sysdeps/pthread
tst-robust8.c prints some mutex internals for nptl debugging, this needed to be made conditioned by getting built with nptl.
Diffstat (limited to 'nptl/tst-robust9.c')
-rw-r--r--nptl/tst-robust9.c93
1 files changed, 0 insertions, 93 deletions
diff --git a/nptl/tst-robust9.c b/nptl/tst-robust9.c
deleted file mode 100644
index befc14f..0000000
--- a/nptl/tst-robust9.c
+++ /dev/null
@@ -1,93 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <pthread.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static pthread_mutex_t m;
-
-static void *
-tf (void *data)
-{
- int err = pthread_mutex_lock (&m);
- if (err == EOWNERDEAD)
- {
- err = pthread_mutex_consistent_np (&m);
- if (err)
- {
- puts ("pthread_mutex_consistent_np");
- exit (1);
- }
- }
- else if (err)
- {
- puts ("pthread_mutex_lock");
- exit (1);
- }
- printf ("thread%ld got the lock.\n", (long int) data);
- sleep (1);
- /* exit without unlock */
- return NULL;
-}
-
-static int
-do_test (void)
-{
- int err, i;
- pthread_t t[3];
- pthread_mutexattr_t ma;
-
- pthread_mutexattr_init (&ma);
- err = pthread_mutexattr_setrobust_np (&ma, PTHREAD_MUTEX_ROBUST_NP);
- if (err)
- {
- puts ("pthread_mutexattr_setrobust_np");
- return 1;
- }
-#ifdef ENABLE_PI
- if (pthread_mutexattr_setprotocol (&ma, PTHREAD_PRIO_INHERIT) != 0)
- {
- puts ("pthread_mutexattr_setprotocol failed");
- return 1;
- }
-#endif
- err = pthread_mutex_init (&m, &ma);
-#ifdef ENABLE_PI
- if (err == ENOTSUP)
- {
- puts ("PI robust mutexes not supported");
- return 0;
- }
-#endif
- if (err)
- {
- puts ("pthread_mutex_init");
- return 1;
- }
-
- for (i = 0; i < sizeof (t) / sizeof (t[0]); i++)
- {
- err = pthread_create (&t[i], NULL, tf, (void *) (long int) i);
- if (err)
- {
- puts ("pthread_create");
- return 1;
- }
- }
-
- for (i = 0; i < sizeof (t) / sizeof (t[0]); i++)
- {
- err = pthread_join (t[i], NULL);
- if (err)
- {
- puts ("pthread_join");
- return 1;
- }
- }
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"