Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Update.
	* tst-mutex5.c (do_test): Add more timedlock tests.
  • Loading branch information
Ulrich Drepper committed Feb 15, 2003
1 parent b2f0546 commit 1c82b97
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 6 deletions.
2 changes: 1 addition & 1 deletion nptl/Banner
@@ -1 +1 @@
NPTL 0.21 by Ulrich Drepper
NPTL 0.22 by Ulrich Drepper
2 changes: 2 additions & 0 deletions nptl/ChangeLog
@@ -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.

Expand Down
44 changes: 41 additions & 3 deletions nptl/tst-mutex5.c
@@ -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.
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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");
Expand Down
4 changes: 4 additions & 0 deletions nptl_db/ChangeLog
@@ -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.
Expand Down
4 changes: 2 additions & 2 deletions nptl_db/td_symbol_list.c
@@ -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.
Expand Down Expand Up @@ -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",
Expand Down

0 comments on commit 1c82b97

Please sign in to comment.