aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads_db/td_thr_get_info.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-07-15 23:37:22 +0000
committerUlrich Drepper <drepper@redhat.com>2002-07-15 23:37:22 +0000
commit706d1dee4692cc5419275fcddc4518933ff2a39e (patch)
treec795b0e8236092f2345ac7803181e41c13c5427c /linuxthreads_db/td_thr_get_info.c
parentc3da4f0cba685e6918d2babb286bd731ae7eab71 (diff)
downloadglibc-706d1dee4692cc5419275fcddc4518933ff2a39e.tar
glibc-706d1dee4692cc5419275fcddc4518933ff2a39e.tar.gz
glibc-706d1dee4692cc5419275fcddc4518933ff2a39e.tar.bz2
glibc-706d1dee4692cc5419275fcddc4518933ff2a39e.zip
Update.
2002-07-15 Ulrich Drepper <drepper@redhat.com> * libio/wfileops.c (_IO_wfile_seekoff): Reposition wide pointers and adjust state for seek position. [PR libc/4070] * libio/Makefile (tests): Add bug-rewind. * libio/bug-rewind.c: New file.
Diffstat (limited to 'linuxthreads_db/td_thr_get_info.c')
-rw-r--r--linuxthreads_db/td_thr_get_info.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/linuxthreads_db/td_thr_get_info.c b/linuxthreads_db/td_thr_get_info.c
index b479170783..4666bda976 100644
--- a/linuxthreads_db/td_thr_get_info.c
+++ b/linuxthreads_db/td_thr_get_info.c
@@ -1,5 +1,5 @@
/* Get thread information.
- Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
@@ -31,10 +31,17 @@ td_thr_get_info (const td_thrhandle_t *th, td_thrinfo_t *infop)
LOG ("td_thr_get_info");
- /* Get the thread descriptor. */
- if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds,
- th->th_ta_p->sizeof_descr) != PS_OK)
- return TD_ERR; /* XXX Other error value? */
+ /* Handle the case when the thread library is not yet initialized. */
+ if (th->th_unique == NULL)
+ {
+ memset (&pds, '\0', sizeof (pds));
+ pds.p_tid = PTHREAD_THREADS_MAX;
+ }
+ else
+ /* Get the thread descriptor. */
+ if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds,
+ th->th_ta_p->sizeof_descr) != PS_OK)
+ return TD_ERR; /* XXX Other error value? */
/* Fill in information. Clear first to provide reproducable
results for the fields we do not fill in. */
@@ -54,7 +61,7 @@ td_thr_get_info (const td_thrhandle_t *th, td_thrinfo_t *infop)
infop->ti_tls = (char *) pds.p_specific;
infop->ti_pri = pds.p_priority;
infop->ti_type = TD_THR_USER;
-
+
if (! pds.p_terminated)
/* XXX For now there is no way to get more information. */
infop->ti_state = TD_THR_ACTIVE;