Updated: 20 Oct 1998

Index Return to Main Contents

cc [flag... ]file... -lc_db [library... ] #include <proc_service.h> #include <thread_db.h>

**td_err_e td_ta_enable_stats**(**const td_thragent_t ****ta_p*, **int*** on_off*);

**td_err_e_stats td_ta_reset**(**const td_thragent_t ****ta_p*);

**td_err_e td_ta_get_stats**(**const td_thragent_t ****ta_p*, **td_ta_stats_t ****tstats*);

The controlling process can request the collection of certain statistics about a target process. Statistics gathering is disabled by default. Each target process has a **td_ta_stats_t** structure that contains current values when statistic gathering is enabled.

The **td_ta_enable_stats()** function turns statistics gathering on or off for the process identified by *ta_p*, depending on whether or not *on_off* is non-zero. When statistics gathering is turned on, all statistics are implicitly reset
as though **td_ta_reset_stats()** had been called. Statistics are not reset when statistics gathering is turned off. Except for **nthreads** **and** **r_concurrency**, the values do not change further, but they remain available for inspection
by way of **td_ta_get_stats()**.

The **td_ta_reset_stats()** function resets all counters in the **td_ta_stats_t** structure to zero for the target process.

The **td_ta_get_stats()** function returns the structure for the process in *tstats*.

The **td_ta_stats_t** structure is defined in **<thread_db.h>** and contains the following members:

typedef struct { int nthreads; /* total number of threads in use */ int r_concurrency; /* requested concurrency level */ int nrunnable_num; /* numerator of avg runnable threads */ int nrunnable_den; /* denominator of avg runnable threads */ int a_concurrency_num; /* numerator, avg achieved concurrency */ int a_concurrency_den; /* denominator, avg achieved concurrency */ int nlwps_num; /* numerator, avg number of LWPs in use */ int nlwps_den; /* denominator, avg number of LWPs in use */ int nidle_num; /* numerator, avg number of idling LWPs */ int nidle_den; /* denominator, avg number of idling LWPs */ } td_ta_stats_t;

The **nthreads** member is the number of threads that are currently part of the target process. The **r_concurrency** member is the current requested concurrency level, such as would be returned by **thr_setconcurrency**(3C). The remaining members are averages over time, each expressed as a fraction with an integral numerator and denominator. The **nrunnable_num** and **nrunnable_den** members represent the average
number of runnable threads. The **a_concurrency_num** and **a_concurrency_den** members represent the average achieved concurrency, the number of actually running threads. The **a_concurrency_num** and **a_concurrency_den** members are less
than or equal to **nrunnable_num** and **nrunnable_den**, respectively. The **nlwps_num** and **nlwps_den** members represent the average number of lightweight processes (**LWP**s) participating in this process.
They must be greater than or equal to **a_concurrency_num** and **a_concurrency_den**, respectively, since every running thread is assigned to an **LWP**, but there can at times be additional idling **LWP**s with
no thread assigned to them. The **nidle_num** and **nidle_den** members represent the average number of idle **LWP**s.

**TD_OK**
The call completed successfully.

**TD_BADTA**
An invalid internal process handle was passed in.

**TD_DBERR**
A call to one of the imported interface routines failed.

**TD_ERR**
Something else went wrong.

See **attributes**(5) for description of the following attributes:

ATTRIBUTE TYPE | ATTRIBUTE VALUE |

MT Level | Safe |

**libc_db**(3LIB), **thr_getconcurrency**(3C), **attributes**(5)

- NAME
- SYNOPSIS
- DESCRIPTION
- RETURN VALUES
- ATTRIBUTES
- SEE ALSO

This document was created by man2html, using the manual pages.

Time: 02:39:03 GMT, October 02, 2010