about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/pthread.c1
-rw-r--r--linuxthreads_db/ChangeLog6
-rw-r--r--linuxthreads_db/proc_service.h2
-rw-r--r--linuxthreads_db/td_thr_get_info.c2
5 files changed, 15 insertions, 1 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index a670e9f93a..2a69af79df 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,8 @@
+1999-11-08  Ulrich Drepper  <drepper@cygnus.com>
+
+	* pthread.c (__pthread_initialize_manager): Initialize
+	__pthread_manager_thread.p_tid.
+
 1999-11-02  Ulrich Drepper  <drepper@cygnus.com>
 
 	* internals.h: Declare __pthread_last_event.
diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c
index 5296c1e349..ab1a0f189e 100644
--- a/linuxthreads/pthread.c
+++ b/linuxthreads/pthread.c
@@ -398,6 +398,7 @@ int __pthread_initialize_manager(void)
   }
   __pthread_manager_request = manager_pipe[1]; /* writing end */
   __pthread_manager_reader = manager_pipe[0]; /* reading end */
+  __pthread_manager_thread.p_tid = 2* PTHREAD_THREADS_MAX + 1;
   __pthread_manager_thread.p_pid = pid;
   /* Make gdb aware of new thread manager */
   if (__pthread_threads_debug && __pthread_sig_debug > 0)
diff --git a/linuxthreads_db/ChangeLog b/linuxthreads_db/ChangeLog
index f2286c99b2..f450d4828e 100644
--- a/linuxthreads_db/ChangeLog
+++ b/linuxthreads_db/ChangeLog
@@ -1,3 +1,9 @@
+1999-11-08  Ulrich Drepper  <drepper@cygnus.com>
+
+	* td_thr_get_info.c: Make sure ti_lid is never zero.
+
+	* proc_service.h: Add ps_getpid prototype.
+
 1999-11-03  Ulrich Drepper  <drepper@cygnus.com>
 
 	* thread_dbP.h (ta_ok): New function.
diff --git a/linuxthreads_db/proc_service.h b/linuxthreads_db/proc_service.h
index 108a86696e..8907b475f5 100644
--- a/linuxthreads_db/proc_service.h
+++ b/linuxthreads_db/proc_service.h
@@ -59,3 +59,5 @@ extern ps_err_e ps_lgetfpregs(struct ps_prochandle *,
                         lwpid_t, prfpregset_t *);
 extern ps_err_e ps_lsetfpregs(struct ps_prochandle *,
                         lwpid_t, const prfpregset_t *);
+
+extern pid_t ps_getpid (struct ps_prochandle *);
diff --git a/linuxthreads_db/td_thr_get_info.c b/linuxthreads_db/td_thr_get_info.c
index 21f9f68d07..25ad3408a9 100644
--- a/linuxthreads_db/td_thr_get_info.c
+++ b/linuxthreads_db/td_thr_get_info.c
@@ -64,7 +64,7 @@ td_thr_get_info (const td_thrhandle_t *th, td_thrinfo_t *infop)
     }
 
   /* Initialization which are the same in both cases.  */
-  infop->ti_lid = pds.p_pid;
+  infop->ti_lid = pds.p_pid ?: ps_getpid (th->th_ta_p->ph);
   infop->ti_ta_p = th->th_ta_p;
   infop->ti_startfunc = pds.p_start_args.start_routine;
   memcpy (&infop->ti_events, &pds.p_eventbuf.eventmask,