aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog6
-rw-r--r--linuxthreads/internals.h3
-rw-r--r--linuxthreads/manager.c1
-rw-r--r--linuxthreads/pthread.c6
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 */