aboutsummaryrefslogtreecommitdiff
path: root/nptl/sysdeps/pthread
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-07-29 09:32:03 +0000
committerRoland McGrath <roland@gnu.org>2003-07-29 09:32:03 +0000
commita7f6c66ec36b297bead2e4d12de1802f757905ed (patch)
treeb433ddb76557f0d5ef7d021bcfa6c78c4ef0101a /nptl/sysdeps/pthread
parent172ce013bdd864ba22b6b22611ffd893f1f9f2a6 (diff)
downloadglibc-a7f6c66ec36b297bead2e4d12de1802f757905ed.tar
glibc-a7f6c66ec36b297bead2e4d12de1802f757905ed.tar.gz
glibc-a7f6c66ec36b297bead2e4d12de1802f757905ed.tar.bz2
glibc-a7f6c66ec36b297bead2e4d12de1802f757905ed.zip
* rt/tst-timer2.c: New file.
* rt/Makefile (tests): Add it.
Diffstat (limited to 'nptl/sysdeps/pthread')
-rw-r--r--nptl/sysdeps/pthread/timer_create.c5
-rw-r--r--nptl/sysdeps/pthread/timer_routines.c7
2 files changed, 6 insertions, 6 deletions
diff --git a/nptl/sysdeps/pthread/timer_create.c b/nptl/sysdeps/pthread/timer_create.c
index 4ee0966f4e..16aa8100b4 100644
--- a/nptl/sysdeps/pthread/timer_create.c
+++ b/nptl/sysdeps/pthread/timer_create.c
@@ -178,7 +178,10 @@ timer_create (clock_id, evp, timerid)
if (thread != NULL)
__timer_thread_dealloc (thread);
if (newtimer != NULL)
- __timer_dealloc (newtimer);
+ {
+ timer_delref (newtimer);
+ __timer_dealloc (newtimer);
+ }
}
pthread_mutex_unlock (&__timer_mutex);
diff --git a/nptl/sysdeps/pthread/timer_routines.c b/nptl/sysdeps/pthread/timer_routines.c
index 7dec0caab1..af6f7412b6 100644
--- a/nptl/sysdeps/pthread/timer_routines.c
+++ b/nptl/sysdeps/pthread/timer_routines.c
@@ -296,7 +296,7 @@ thread_cleanup (void *val)
thread->current_timer = 0;
if (list_isempty (&thread->timer_queue))
- __timer_thread_dealloc (thread);
+ __timer_thread_dealloc (thread);
else
(void) __timer_thread_start (thread);
@@ -540,10 +540,7 @@ __timer_thread_find_matching (const pthread_attr_t *desired_attr,
if (thread_attr_compare (desired_attr, &candidate->attr)
&& desired_clock_id == candidate->clock_id)
- {
- list_unlink (iter);
- return candidate;
- }
+ return candidate;
iter = list_next (iter);
}