diff options
Diffstat (limited to 'linuxthreads')
-rw-r--r-- | linuxthreads/ChangeLog | 6 | ||||
-rw-r--r-- | linuxthreads/internals.h | 3 | ||||
-rw-r--r-- | linuxthreads/manager.c | 1 | ||||
-rw-r--r-- | linuxthreads/pthread.c | 6 |
4 files changed, 11 insertions, 5 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index e90c2fe..6d8d18b 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,9 @@ +1999-10-14 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (pthread_handle_create): Remove p_startfct initialization. + + * internals.h (_pthread_descr_struct): We don't need p_startfct field. + 1999-10-12 Ulrich Drepper <drepper@cygnus.com> * internals.h: Correct return types for __libc_read and __libc_write. diff --git a/linuxthreads/internals.h b/linuxthreads/internals.h index 6e9dc10..b127512 100644 --- a/linuxthreads/internals.h +++ b/linuxthreads/internals.h @@ -72,7 +72,7 @@ struct pthread_key_struct { }; -#define PTHREAD_START_ARGS_INITIALIZER { NULL, NULL, {{0, }}, 0, { 0 } } +#define PTHREAD_START_ARGS_INITIALIZER(fct) { fct, NULL, {{0, }}, 0, { 0 } } /* The type of thread descriptors */ @@ -114,7 +114,6 @@ struct _pthread_descr_struct { size_t p_guardsize; /* size of guard area */ pthread_descr p_self; /* Pointer to this structure */ int p_nr; /* Index of descriptor in __pthread_handles */ - void *(*p_startfct) (void *); /* The startup function of this thread. */ } __attribute__ ((aligned(32))); /* We need to align the structure so that doubles are aligned properly. This is 8 bytes on MIPS and 16 bytes on MIPS64. diff --git a/linuxthreads/manager.c b/linuxthreads/manager.c index 52c541c..daa12bc 100644 --- a/linuxthreads/manager.c +++ b/linuxthreads/manager.c @@ -342,7 +342,6 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr, new_thread->p_guardsize = guardsize; new_thread->p_self = new_thread; new_thread->p_nr = sseg; - new_thread->p_startfct = start_routine; /* Initialize the thread handle */ __pthread_init_lock(&__pthread_handles[sseg].h_lock); __pthread_handles[sseg].h_descr = new_thread; diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c index aea6db1..2741b21 100644 --- a/linuxthreads/pthread.c +++ b/linuxthreads/pthread.c @@ -61,7 +61,8 @@ struct _pthread_descr_struct __pthread_initial_thread = { 0, /* int p_h_errno */ NULL, /* char * p_in_sighandler */ 0, /* char p_sigwaiting */ - PTHREAD_START_ARGS_INITIALIZER, /* struct pthread_start_args p_start_args */ + PTHREAD_START_ARGS_INITIALIZER(NULL), + /* struct pthread_start_args p_start_args */ {NULL}, /* void ** p_specific[PTHREAD_KEY_1STLEVEL_SIZE] */ {NULL}, /* void * p_libc_specific[_LIBC_TSD_KEY_N] */ 0, /* int p_userstack */ @@ -103,7 +104,8 @@ struct _pthread_descr_struct __pthread_manager_thread = { 0, /* int p_h_errno */ NULL, /* char * p_in_sighandler */ 0, /* char p_sigwaiting */ - PTHREAD_START_ARGS_INITIALIZER, /* struct pthread_start_args p_start_args */ + PTHREAD_START_ARGS_INITIALIZER(__pthread_manager), + /* struct pthread_start_args p_start_args */ {NULL}, /* void ** p_specific[PTHREAD_KEY_1STLEVEL_SIZE] */ {NULL}, /* void * p_libc_specific[_LIBC_TSD_KEY_N] */ 0, /* int p_userstack */ |