Update.
authorUlrich Drepper <drepper@redhat.com>
Sat, 15 Feb 2003 22:32:50 +0000 (22:32 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 15 Feb 2003 22:32:50 +0000 (22:32 +0000)
* tst-mutex5.c (do_test): Add more timedlock tests.

nptl/Banner
nptl/ChangeLog
nptl/tst-mutex5.c
nptl_db/ChangeLog
nptl_db/td_symbol_list.c

index 7f022b3..d5e7cc0 100644 (file)
@@ -1 +1 @@
-NPTL 0.21 by Ulrich Drepper
+NPTL 0.22 by Ulrich Drepper
index f928819..ec74f80 100644 (file)
@@ -1,5 +1,7 @@
 2003-02-15  Ulrich Drepper  <drepper@redhat.com>
 
+       * tst-mutex5.c (do_test): Add more timedlock tests.
+
        * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
        * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
 
index cfa8d31..2ade6a7 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -60,12 +60,12 @@ do_test (void)
   err = pthread_mutex_timedlock (&m, &ts);
   if (err == 0)
     {
-      puts ("timed_lock succeeded");
+      puts ("timedlock succeeded");
       return 1;
     }
   else if (err != ETIMEDOUT)
     {
-      printf ("timed_lock error != ETIMEDOUT: %d\n", err);
+      printf ("timedlock error != ETIMEDOUT: %d\n", err);
       return 1;
     }
   else
@@ -98,12 +98,50 @@ do_test (void)
        }
     }
 
+  (void) gettimeofday (&tv, NULL);
+  TIMEVAL_TO_TIMESPEC (&tv, &ts);
+
+  ts.tv_sec += 2;      /* Wait 2 seconds.  */
+  /* The following makes the ts value invalid.  */
+  ts.tv_nsec += 1000000000;
+
+  err = pthread_mutex_timedlock (&m, &ts);
+  if (err == 0)
+    {
+      puts ("2nd timedlock succeeded");
+      return 1;
+    }
+  else if (err != EINVAL)
+    {
+      printf ("2nd timedlock error != EINVAL: %d\n", err);
+      return 1;
+    }
+
   if (pthread_mutex_unlock (&m) != 0)
     {
       puts ("mutex_unlock failed");
       return 1;
     }
 
+  (void) gettimeofday (&tv, NULL);
+  TIMEVAL_TO_TIMESPEC (&tv, &ts);
+
+  ts.tv_sec += 2;      /* Wait 2 seconds.  */
+  if (pthread_mutex_timedlock (&m, &ts) != 0)
+    {
+      puts ("3rd timedlock failed");
+    }
+
+  (void) gettimeofday (&tv2, NULL);
+
+  /* Check that timedlock didn't delay.  We use a limit of 0.1 secs.  */
+  timersub (&tv2, &tv, &tv2);
+  if (tv2.tv_sec > 0 || tv2.tv_usec > 100000)
+    {
+      puts ("3rd timedlock didn't return right away");
+      exit (1);
+    }
+
   if (pthread_mutex_destroy (&m) != 0)
     {
       puts ("mutex_destroy failed");
index d4a4ad0..4d6ea58 100644 (file)
@@ -1,3 +1,7 @@
+2003-02-15  Ulrich Drepper  <drepper@redhat.com>
+
+       * td_symbol_list.c: New symbol name for SYM_PTHREAD_NTHREADS.
+
 2003-01-07  Jakub Jelinek  <jakub@redhat.com>
 
        * td_ta_event_getmsg.c: Include assert.h.
index f6ba917..252faa4 100644 (file)
@@ -1,5 +1,5 @@
 /* Return list of symbols the library can request.
-   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
 
@@ -27,7 +27,7 @@ static const char *symbol_list_arr[] =
 {
   [SYM_PTHREAD_THREADS_EVENTS] = "__nptl_threads_events",
   [SYM_PTHREAD_LAST_EVENT] = "__nptl_last_event",
-  [SYM_PTHREAD_NTHREADS] = "nptl_nthreads",
+  [SYM_PTHREAD_NTHREADS] = "__nptl_nthreads",
   [SYM_PTHREAD_STACK_USED] = "stack_used",
   [SYM_PTHREAD_STACK_USER] = "__stack_user",
   [SYM_PTHREAD_KEYS] = "__pthread_keys",