diff options
author | Daniel P. Berrange <berrange@redhat.com> | 2016-08-11 14:36:21 +0100 |
---|---|---|
committer | Daniel P. Berrange <berrange@redhat.com> | 2017-01-23 15:32:18 +0000 |
commit | 52dd99e8a4df8ace2fdf8cd173a3338357776bff (patch) | |
tree | a1369d3a1df1b5d757089e77ed992fa5e2b5c32e /io/task.c | |
parent | e8c8adecada7a3e59bffcc0207327aae472ffcda (diff) |
io: add ability to associate an opaque "result" with with a task
Currently there is no data associated with a successful
task completion. This adds an opaque pointer to the task
to store an arbitrary result.
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Diffstat (limited to 'io/task.c')
-rw-r--r-- | io/task.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -29,6 +29,8 @@ struct QIOTask { QIOTaskFunc func; gpointer opaque; GDestroyNotify destroy; + gpointer result; + GDestroyNotify destroyResult; }; @@ -57,6 +59,9 @@ static void qio_task_free(QIOTask *task) if (task->destroy) { task->destroy(task->opaque); } + if (task->destroyResult) { + task->destroyResult(task->result); + } object_unref(task->source); g_free(task); @@ -154,6 +159,21 @@ void qio_task_abort(QIOTask *task, } +void qio_task_set_result_pointer(QIOTask *task, + gpointer result, + GDestroyNotify destroy) +{ + task->result = result; + task->destroyResult = destroy; +} + + +gpointer qio_task_get_result_pointer(QIOTask *task) +{ + return task->result; +} + + Object *qio_task_get_source(QIOTask *task) { return task->source; |