diff options
author | "Steven J. Hill" <sjhill@realitydiluted.com> | 2006-02-27 23:12:57 +0000 |
---|---|---|
committer | "Steven J. Hill" <sjhill@realitydiluted.com> | 2006-02-27 23:12:57 +0000 |
commit | d032c07a7913c9aa932e35eb04a3cccdae8a9a1d (patch) | |
tree | 602adadabd571e89b1288643647510533baef791 /libpthread/linuxthreads.old/manager.c | |
parent | 589a76ea96e1153a3d4c30a09ecb6b54546d3bf8 (diff) | |
download | uClibc-alpine-d032c07a7913c9aa932e35eb04a3cccdae8a9a1d.tar.bz2 uClibc-alpine-d032c07a7913c9aa932e35eb04a3cccdae8a9a1d.tar.xz |
Merge from trunk.
Diffstat (limited to 'libpthread/linuxthreads.old/manager.c')
-rw-r--r-- | libpthread/linuxthreads.old/manager.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libpthread/linuxthreads.old/manager.c b/libpthread/linuxthreads.old/manager.c index df26344e7..e57080d17 100644 --- a/libpthread/linuxthreads.old/manager.c +++ b/libpthread/linuxthreads.old/manager.c @@ -583,9 +583,16 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr, __pthread_lock(new_thread->p_lock, NULL); /* We have to report this event. */ +#ifdef __ia64__ + pid = __clone2(pthread_start_thread_event, (void **) new_thread, + (char *)new_thread - new_thread_bottom, + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | + __pthread_sig_cancel, new_thread); +#else pid = clone(pthread_start_thread_event, (void **) new_thread, CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | __pthread_sig_cancel, new_thread); +#endif saved_errno = errno; if (pid != -1) @@ -614,9 +621,16 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr, if (pid == 0) { PDEBUG("cloning new_thread = %p\n", new_thread); +#ifdef __ia64__ + pid = __clone2(pthread_start_thread, (void **) new_thread, + (char *)new_thread - new_thread_bottom, + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | + __pthread_sig_cancel, new_thread); +#else pid = clone(pthread_start_thread, (void **) new_thread, CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | __pthread_sig_cancel, new_thread); +#endif saved_errno = errno; } /* Check if cloning succeeded */ |