about summary refs log tree commit diff
path: root/linuxthreads
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 /linuxthreads
parent172ce013bdd864ba22b6b22611ffd893f1f9f2a6 (diff)
downloadglibc-a7f6c66ec36b297bead2e4d12de1802f757905ed.tar.gz
glibc-a7f6c66ec36b297bead2e4d12de1802f757905ed.tar.xz
glibc-a7f6c66ec36b297bead2e4d12de1802f757905ed.zip
* rt/tst-timer2.c: New file.
	* rt/Makefile (tests): Add it.
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog7
-rw-r--r--linuxthreads/sysdeps/pthread/timer_create.c5
-rw-r--r--linuxthreads/sysdeps/pthread/timer_routines.c5
3 files changed, 12 insertions, 5 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 4d70bb326c..b151dc3406 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,10 @@
+2003-06-19  Daniel Jacobowitz  <drow@mvista.com>
+
+	* sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
+	before __timer_dealloc.
+	* sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
+	Don't call list_unlink.
+
 2003-07-29  Roland McGrath  <roland@redhat.com>
 
 	* Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
diff --git a/linuxthreads/sysdeps/pthread/timer_create.c b/linuxthreads/sysdeps/pthread/timer_create.c
index 795f94c7d2..d63cda0687 100644
--- a/linuxthreads/sysdeps/pthread/timer_create.c
+++ b/linuxthreads/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/linuxthreads/sysdeps/pthread/timer_routines.c b/linuxthreads/sysdeps/pthread/timer_routines.c
index b88c5e0556..36c26b2a01 100644
--- a/linuxthreads/sysdeps/pthread/timer_routines.c
+++ b/linuxthreads/sysdeps/pthread/timer_routines.c
@@ -538,10 +538,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);
     }