diff options
Diffstat (limited to 'lib/libpthread/thread/thr_create.c')
-rw-r--r-- | lib/libpthread/thread/thr_create.c | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/lib/libpthread/thread/thr_create.c b/lib/libpthread/thread/thr_create.c index fd9e746..b8a1c46 100644 --- a/lib/libpthread/thread/thr_create.c +++ b/lib/libpthread/thread/thr_create.c @@ -189,19 +189,24 @@ pthread_create(pthread_t * thread, const pthread_attr_t * attr, */ #if defined(__FreeBSD__) #if defined(__alpha__) - new_thread->saved_jmp_buf[0]._jb[2] = (long) _thread_start; - new_thread->saved_jmp_buf[0]._jb[4 + R_RA] = 0; - new_thread->saved_jmp_buf[0]._jb[4 + R_T12] = (long) _thread_start; + new_thread->saved_jmp_buf[0]._jb[2] = + (long)_thread_start; + new_thread->saved_jmp_buf[0]._jb[4 + R_RA] = + 0; + new_thread->saved_jmp_buf[0]._jb[4 + R_T12] = + (long)_thread_start; #else - new_thread->saved_jmp_buf[0]._jb[0] = (long) _thread_start; + new_thread->saved_jmp_buf[0]._jb[0] = + (long)_thread_start; #endif #elif defined(__NetBSD__) #if defined(__alpha__) - new_thread->saved_jmp_buf[2] = (long) _thread_start; + new_thread->saved_jmp_buf[2] = (long)_thread_start; new_thread->saved_jmp_buf[4 + R_RA] = 0; - new_thread->saved_jmp_buf[4 + R_T12] = (long) _thread_start; + new_thread->saved_jmp_buf[4 + R_T12] = + (long)_thread_start; #else - new_thread->saved_jmp_buf[0] = (long) _thread_start; + new_thread->saved_jmp_buf[0] = (long)_thread_start; #endif #else #error "Don't recognize this operating system!" @@ -210,15 +215,22 @@ pthread_create(pthread_t * thread, const pthread_attr_t * attr, /* The stack starts high and builds down: */ #if defined(__FreeBSD__) #if defined(__alpha__) - new_thread->saved_jmp_buf[0]._jb[4 + R_SP] = (long) new_thread->stack + pattr->stacksize_attr - sizeof(double); + new_thread->saved_jmp_buf[0]._jb[4 + R_SP] = + (long)new_thread->stack + pattr->stacksize_attr + - sizeof(double); #else - new_thread->saved_jmp_buf[0]._jb[2] = (int) (new_thread->stack + pattr->stacksize_attr - sizeof(double)); + new_thread->saved_jmp_buf[0]._jb[2] = + (int)(new_thread->stack + pattr->stacksize_attr - + sizeof(double)); #endif #elif defined(__NetBSD__) #if defined(__alpha__) - new_thread->saved_jmp_buf[4 + R_SP] = (long) new_thread->stack + pattr->stacksize_attr - sizeof(double); + new_thread->saved_jmp_buf[4 + R_SP] = + (long)new_thread->stack + pattr->stacksize_attr - + sizeof(double); #else - new_thread->saved_jmp_buf[2] = (long) new_thread->stack + pattr->stacksize_attr - sizeof(double); + new_thread->saved_jmp_buf[2] = (long)new_thread->stack + + pattr->stacksize_attr - sizeof(double); #endif #else #error "Don't recognize this operating system!" @@ -263,6 +275,8 @@ pthread_create(pthread_t * thread, const pthread_attr_t * attr, new_thread->flags = 0; new_thread->poll_data.nfds = 0; new_thread->poll_data.fds = NULL; + new_thread->jmpflags = 0; + new_thread->continuation = NULL; /* * Defer signals to protect the scheduling queues |