There's still one issue left - if the cancellable is cancelled, _finish needs to throw IO_ERROR_CANCELLED even if it wanted to throw the log_error. Ideally we'd just use g_simple_async_result_set_check_cancellable, but that's available only from 2.32, so we need to implement it manually.
There's still one issue left - if the cancellable is cancelled, _finish needs to throw IO_ERROR_CANCELLED even if it wanted to throw the log_error. Ideally we'd just use g_simple_ async_result_ set_check_ cancellable, but that's available only from 2.32, so we need to implement it manually.