TNF_PROCESS_DISABLE(3TNF) TNF Library Functions TNF_PROCESS_DISABLE(3TNF)


NAME


tnf_process_disable, tnf_process_enable, tnf_thread_disable,
tnf_thread_enable - probe control internal interface

SYNOPSIS


cc [ flag ... ] file ... -ltnfprobe [ library ... ]
#include <tnf/probe.h>


void tnf_process_disable(void);


void tnf_process_enable(void);


void tnf_thread_disable(void);


void tnf_thread_enable(void);


DESCRIPTION


There are three levels of granularity for controlling tracing and probe
functions (called probing from here on): probing for the entire process,
a particular thread, and the probe itself can be disabled or enabled.
The first two (process and thread) are controlled by this interface. The
probe is controlled with the prex(1) utility.


The tnf_process_disable() function turns off probing for the process. The
default process state is to have probing enabled. The
tnf_process_enable() function turns on probing for the process.


The tnf_thread_disable() function turns off probing for the currently
running thread. Threads are "born" or created with this state enabled.
The tnf_thread_enable() function turns on probing for the currently
running thread. If the program is a non-threaded program, these two
thread interfaces disable or enable probing for the process.

ATTRIBUTES


See attributes(5) for descriptions of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Unstable |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+

SEE ALSO


prex(1), tnfdump(1), TNF_DECLARE_RECORD(3TNF), TNF_PROBE(3TNF),
attributes(5)

NOTES


A probe is considered enabled only if:

o prex(1) has enabled the probe AND

o the process has probing enabled, which is the default or could
be set with tnf_process_enable() AND

o the thread that hits the probe has probing enabled, which is
every thread's default or could be set with
tnf_thread_enable().


There is a run time cost associated with determining that the probe is
disabled. To reduce the performance effect of probes, this cost should
be minimized. The quickest way that a probe can be determined to be
disabled is by the enable control that prex(1) uses. Therefore, to
disable all the probes in a process use the disable command in prex(1)
rather than tnf_process_disable().


The tnf_process_disable() and tnf_process_enable() functions should only
be used to toggle probing based on some internal program condition. The
tnf_thread_disable() function should be used to turn off probing for
threads that are uninteresting.


February 5, 2002 TNF_PROCESS_DISABLE(3TNF)