If return_on_cancel is true, then cancelling task's
#GCancellable will immediately cause it to return, as though the
task's #GTaskThreadFunc had called
gio.task.Task.returnErrorIfCancelled and then returned.
This allows you to create a cancellable wrapper around an
uninterruptible function. The #GTaskThreadFunc just needs to be
careful that it does not modify any externally-visible state after
it has been cancelled. To do that, the thread should call
gio.task.Task.setReturnOnCancel again to (atomically) set
return-on-cancel false before making externally-visible changes;
if the task gets cancelled before the return-on-cancel flag could
be changed, gio.task.Task.setReturnOnCancel will indicate this by
returning false.
You can disable and re-enable this flag multiple times if you wish.
If the task's #GCancellable is cancelled while return-on-cancel is
false, then calling gio.task.Task.setReturnOnCancel to set it true
again will cause the task to be cancelled at that point.
If the task's #GCancellable is already cancelled before you call
gio.task.Task.runInThread/gio.task.Task.runInThreadSync, then the
#GTaskThreadFunc will still be run (for consistency), but the task
will also be completed right away.
Sets or clears task's return-on-cancel flag. This is only meaningful for tasks run via gio.task.Task.runInThread or gio.task.Task.runInThreadSync.
If return_on_cancel is true, then cancelling task's #GCancellable will immediately cause it to return, as though the task's #GTaskThreadFunc had called gio.task.Task.returnErrorIfCancelled and then returned.
This allows you to create a cancellable wrapper around an uninterruptible function. The #GTaskThreadFunc just needs to be careful that it does not modify any externally-visible state after it has been cancelled. To do that, the thread should call gio.task.Task.setReturnOnCancel again to (atomically) set return-on-cancel false before making externally-visible changes; if the task gets cancelled before the return-on-cancel flag could be changed, gio.task.Task.setReturnOnCancel will indicate this by returning false.
You can disable and re-enable this flag multiple times if you wish. If the task's #GCancellable is cancelled while return-on-cancel is false, then calling gio.task.Task.setReturnOnCancel to set it true again will cause the task to be cancelled at that point.
If the task's #GCancellable is already cancelled before you call gio.task.Task.runInThread/gio.task.Task.runInThreadSync, then the #GTaskThreadFunc will still be run (for consistency), but the task will also be completed right away.