aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-03-23 21:34:58 +0000
committerUlrich Drepper <drepper@redhat.com>2000-03-23 21:34:58 +0000
commitc0bc5f7b8fd62dfa566dd3adb91f3a1ee8db6aeb (patch)
tree6dd7566ba2bd4bc27c327d0348e0309b252ed07c /linuxthreads
parent7392ce9bb41a985cf0cba52cf6b021835ae28563 (diff)
downloadglibc-c0bc5f7b8fd62dfa566dd3adb91f3a1ee8db6aeb.tar
glibc-c0bc5f7b8fd62dfa566dd3adb91f3a1ee8db6aeb.tar.gz
glibc-c0bc5f7b8fd62dfa566dd3adb91f3a1ee8db6aeb.tar.bz2
glibc-c0bc5f7b8fd62dfa566dd3adb91f3a1ee8db6aeb.zip
Update.
2000-03-23 Bruno Haible <haible@clisp.cons.org> * iconv/gconv_simple.c (internal_ucs4_loop, internal_ucs4le_loop): Remove no-op pointer increment.
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/manager.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 6d28f909c0..2a9683ec34 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,8 @@
+2000-03-23 Ulrich Drepper <drepper@redhat.com>
+
+ * manager.c (pthread_handle_create): Store ID of new thread before
+ clone call.
+
2000-03-21 Ulrich Drepper <drepper@redhat.com>
* attr.c: Use new macros from shlib-compat.h to define versions.
diff --git a/linuxthreads/manager.c b/linuxthreads/manager.c
index 4aa598bb9e..6e585be79c 100644
--- a/linuxthreads/manager.c
+++ b/linuxthreads/manager.c
@@ -415,6 +415,10 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr,
new_thread->p_start_args.start_routine = start_routine;
new_thread->p_start_args.arg = arg;
new_thread->p_start_args.mask = *mask;
+ /* Make the new thread ID available already now. If any of the later
+ functions fail we return an error value and the caller must not use
+ the stored thread ID. */
+ *thread = new_thread_id;
/* Raise priority of thread manager if needed */
__pthread_manager_adjust_prio(new_thread->p_priority);
/* Do the cloning. We have to use two different functions depending
@@ -487,8 +491,6 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr,
/* Set pid field of the new thread, in case we get there before the
child starts. */
new_thread->p_pid = pid;
- /* We're all set */
- *thread = new_thread_id;
return 0;
}