From 50446916683379f963eaaedb965654d464cd049f Mon Sep 17 00:00:00 2001 From: David Smith Date: Mon, 16 Jun 2008 16:41:33 -0500 Subject: [PATCH] Improved callback handling. 2008-06-16 David Smith * task_finder.c (stap_start_task_finder): Improved callback handling. --- runtime/ChangeLog | 5 +++++ runtime/task_finder.c | 18 ++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/runtime/ChangeLog b/runtime/ChangeLog index 3912a4cfb..ca7bf0820 100644 --- a/runtime/ChangeLog +++ b/runtime/ChangeLog @@ -1,3 +1,8 @@ +2008-06-16 David Smith + + * task_finder.c (stap_start_task_finder): Improved callback + handling. + 2008-06-10 David Smith * task_finder.c (struct stap_task_finder_target): Added diff --git a/runtime/task_finder.c b/runtime/task_finder.c index 8448f29c0..e853cb2a4 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. -- 2.43.5