summaryrefslogtreecommitdiffstats
path: root/runtime/task_finder.c
diff options
context:
space:
mode:
authorDavid Smith <dsmith@redhat.com>2008-06-16 16:41:33 -0500
committerDavid Smith <dsmith@redhat.com>2008-06-16 16:42:18 -0500
commit50446916683379f963eaaedb965654d464cd049f (patch)
tree3b0640751d09f6450c0d4fd6779da1be0a6769c5 /runtime/task_finder.c
parentf719ec7cc85a79206bbfe2521786fd84a6608bac (diff)
downloadsystemtap-steved-50446916683379f963eaaedb965654d464cd049f.tar.gz
systemtap-steved-50446916683379f963eaaedb965654d464cd049f.tar.xz
systemtap-steved-50446916683379f963eaaedb965654d464cd049f.zip
Improved callback handling.
2008-06-16 David Smith <dsmith@redhat.com> * task_finder.c (stap_start_task_finder): Improved callback handling.
Diffstat (limited to 'runtime/task_finder.c')
-rw-r--r--runtime/task_finder.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/runtime/task_finder.c b/runtime/task_finder.c
index 8448f29c..e853cb2a 100644
--- a/runtime/task_finder.c
+++ b/runtime/task_finder.c
@@ -654,19 +654,21 @@ stap_start_task_finder(void)
cb_tgt = list_entry(cb_node,
struct stap_task_finder_target,
callback_list);
- if (cb_tgt == NULL || cb_tgt->callback == NULL)
+ if (cb_tgt == NULL)
continue;
// Call the callback. Assume that if
// the thread is a thread group
// leader, it is a process.
- rc = cb_tgt->callback(tsk, 1,
- (tsk->pid == tsk->tgid),
- cb_tgt);
- if (rc != 0) {
- _stp_error("attach callback for %d failed: %d",
- (int)tsk->pid, rc);
- goto stf_err;
+ if (cb_tgt->callback != NULL) {
+ rc = cb_tgt->callback(tsk, 1,
+ (tsk->pid == tsk->tgid),
+ cb_tgt);
+ if (rc != 0) {
+ _stp_error("attach callback for %d failed: %d",
+ (int)tsk->pid, rc);
+ goto stf_err;
+ }
}
// Set up events we need for attached tasks.