aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads/manager.c
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/manager.c
parent7392ce9bb41a985cf0cba52cf6b021835ae28563 (diff)
downloadglibc-c0bc5f7b8fd62dfa566dd3adb91f3a1ee8db6aeb.zip
glibc-c0bc5f7b8fd62dfa566dd3adb91f3a1ee8db6aeb.tar.gz
glibc-c0bc5f7b8fd62dfa566dd3adb91f3a1ee8db6aeb.tar.bz2
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/manager.c')
-rw-r--r--linuxthreads/manager.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/linuxthreads/manager.c b/linuxthreads/manager.c
index 4aa598b..6e585be 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;
}