Sets @task's result to @result and completes the task. If @result
is not %NULL, then @result_destroy will be used to free @result if
the caller does not take ownership of it with
g_task_propagate_pointer().
"Completes the task" means that for an ordinary asynchronous task
it will either invoke the task's callback, or else queue that
callback to be invoked in the proper #GMainContext, or in the next
iteration of the current #GMainContext. For a task run via
g_task_run_in_thread() or g_task_run_in_thread_sync(), calling this
method will save @result to be returned to the caller later, but
the task will not actually be completed until the #GTaskThreadFunc
exits.
Note that since the task may be completed before returning from
g_task_return_pointer(), you cannot assume that @result is still
valid after calling this, unless you are still holding another
reference on it.
Sets @task's result to @result and completes the task. If @result is not %NULL, then @result_destroy will be used to free @result if the caller does not take ownership of it with g_task_propagate_pointer().
"Completes the task" means that for an ordinary asynchronous task it will either invoke the task's callback, or else queue that callback to be invoked in the proper #GMainContext, or in the next iteration of the current #GMainContext. For a task run via g_task_run_in_thread() or g_task_run_in_thread_sync(), calling this method will save @result to be returned to the caller later, but the task will not actually be completed until the #GTaskThreadFunc exits.
Note that since the task may be completed before returning from g_task_return_pointer(), you cannot assume that @result is still valid after calling this, unless you are still holding another reference on it.