diff options
author | Mohamed Abbas <mabbas@linux.intel.com> | 2011-01-28 12:31:30 +0100 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-01-28 12:31:30 +0100 |
commit | ab4cdff6852fd5fe26ee3ad588f0200952841ffe (patch) | |
tree | 99b7aa5612cb235dd0fde7cfcb6592261da4a416 /src | |
parent | d211eda9950464aea25aea3fbfc0bb276b697294 (diff) | |
download | connman-ab4cdff6852fd5fe26ee3ad588f0200952841ffe.tar.gz connman-ab4cdff6852fd5fe26ee3ad588f0200952841ffe.tar.bz2 connman-ab4cdff6852fd5fe26ee3ad588f0200952841ffe.zip |
task: Pass exit code to the exit callback
Diffstat (limited to 'src')
-rw-r--r-- | src/task.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -246,11 +246,15 @@ int connman_task_set_notify(struct connman_task *task, const char *member, static void task_died(GPid pid, gint status, gpointer user_data) { struct connman_task *task = user_data; + int exit_code; - if (WIFEXITED(status)) - DBG("task %p exit status %d", task, WEXITSTATUS(status)); - else + if (WIFEXITED(status)) { + exit_code = WEXITSTATUS(status); + DBG("task %p exit status %d", task, exit_code); + } else { + exit_code = 0; DBG("task %p signal %d", task, WTERMSIG(status)); + } g_spawn_close_pid(pid); task->pid = -1; @@ -258,7 +262,7 @@ static void task_died(GPid pid, gint status, gpointer user_data) task->child_watch = 0; if (task->exit_func) - task->exit_func(task, task->exit_data); + task->exit_func(task, exit_code, task->exit_data); } static void task_setup(gpointer user_data) |