summaryrefslogtreecommitdiff
path: root/linuxthreads/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-06-09 04:59:48 +0000
committerUlrich Drepper <drepper@redhat.com>2000-06-09 04:59:48 +0000
commit18e4e4462d27d3ce5484f3d007681c4b19bab919 (patch)
treefc9486dda95f4d5c28f384f62bec19f92cf655cb /linuxthreads/sysdeps
parent165ab1d78d209289a971f121cd3331475b340692 (diff)
downloadglibc-18e4e4462d27d3ce5484f3d007681c4b19bab919.tar.gz
Update.
* sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer): Be prepared for empty timer list.
Diffstat (limited to 'linuxthreads/sysdeps')
-rw-r--r--linuxthreads/sysdeps/pthread/timer_routines.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/linuxthreads/sysdeps/pthread/timer_routines.c b/linuxthreads/sysdeps/pthread/timer_routines.c
index becb110010..8d45f05207 100644
--- a/linuxthreads/sysdeps/pthread/timer_routines.c
+++ b/linuxthreads/sysdeps/pthread/timer_routines.c
@@ -374,8 +374,8 @@ thread_func (void *arg)
list_unlink (first);
- if (timer->value.it_interval.tv_sec
- || timer->value.it_interval.tv_nsec)
+ if (__builtin_expect (timer->value.it_interval.tv_sec, 0) != 0
+ || timer->value.it_interval.tv_nsec != 0)
{
timespec_add (&timer->expirytime, &now,
&timer->value.it_interval);
@@ -433,7 +433,7 @@ __timer_thread_queue_timer (struct thread_node *thread,
}
}
- if (insert->clock != timer->clock)
+ if (timer != NULL && insert->clock != timer->clock)
{
if (matching == NULL)
/* We cannot queue this timer. */
@@ -456,7 +456,6 @@ __timer_thread_start (struct thread_node *thread)
int retval = 1;
assert (!thread->exists);
-
thread->exists = 1;
if (pthread_create (&thread->id, &thread->attr, thread_func, thread) != 0)