summary refs log tree commit diff
path: root/linuxthreads
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-10-08 07:03:03 +0000
committerUlrich Drepper <drepper@redhat.com>1999-10-08 07:03:03 +0000
commit9640bbe1c1fab7e1373e59160889b1fbc0bd000c (patch)
tree287038440c837cce542aba340414a0ce3b677f35 /linuxthreads
parent10507e559514de6b31d1b81cbcc3c81b662aef89 (diff)
downloadglibc-9640bbe1c1fab7e1373e59160889b1fbc0bd000c.tar.gz
glibc-9640bbe1c1fab7e1373e59160889b1fbc0bd000c.tar.xz
glibc-9640bbe1c1fab7e1373e59160889b1fbc0bd000c.zip
Update.
1999-10-07  Ulrich Drepper  <drepper@cygnus.com>

	* Implies: New file.
	* internals.h (struct _pthread_descr_struct): Add p_startfct.
	* manager.c (pthread_handle_create): Initialize p_startfct.
	* pthread.c: Define __linuxthread_pthread_sizeof_descr variable.
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog7
-rw-r--r--linuxthreads/Implies1
-rw-r--r--linuxthreads/internals.h1
-rw-r--r--linuxthreads/manager.c1
-rw-r--r--linuxthreads/pthread.c2
5 files changed, 12 insertions, 0 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index d83f63c242..872d17e84b 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,10 @@
+1999-10-07  Ulrich Drepper  <drepper@cygnus.com>
+
+	* Implies: New file.
+	* internals.h (struct _pthread_descr_struct): Add p_startfct.
+	* manager.c (pthread_handle_create): Initialize p_startfct.
+	* pthread.c: Define __linuxthread_pthread_sizeof_descr variable.
+
 1999-09-25  Ulrich Drepper  <drepper@cygnus.com>
 
 	* manager.c (__linuxthreads_pthread_threads_max): New variable.
diff --git a/linuxthreads/Implies b/linuxthreads/Implies
new file mode 100644
index 0000000000..2c56497842
--- /dev/null
+++ b/linuxthreads/Implies
@@ -0,0 +1 @@
+linuxthreads_db
diff --git a/linuxthreads/internals.h b/linuxthreads/internals.h
index 34297fe752..73243d42dc 100644
--- a/linuxthreads/internals.h
+++ b/linuxthreads/internals.h
@@ -113,6 +113,7 @@ 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 b481fc890c..e59f98092c 100644
--- a/linuxthreads/manager.c
+++ b/linuxthreads/manager.c
@@ -342,6 +342,7 @@ 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 2f10f06790..aea6db12ab 100644
--- a/linuxthreads/pthread.c
+++ b/linuxthreads/pthread.c
@@ -150,6 +150,8 @@ const int __pthread_offsetof_descr = offsetof(struct pthread_handle_struct,
                                               h_descr);
 const int __pthread_offsetof_pid = offsetof(struct _pthread_descr_struct,
                                             p_pid);
+const int __linuxthread_pthread_sizeof_descr
+  = sizeof(struct _pthread_descr_struct);
 
 /* These variables are used by the setup code.  */
 extern int _errno;