static void ide_git_vcs_reload_worker (GTask *task, gpointer source_object, gpointer task_data, GCancellable *cancellable) { IdeGitVcs *self = source_object; g_autoptr(GgitRepository) repository1 = NULL; g_autoptr(GgitRepository) repository2 = NULL; GError *error = NULL; g_assert (G_IS_TASK (task)); g_assert (IDE_IS_GIT_VCS (self)); g_assert (!cancellable || G_IS_CANCELLABLE (cancellable)); if (!(repository1 = ide_git_vcs_load (self, &error)) || !(repository2 = ide_git_vcs_load (self, &error))) { g_task_return_error (task, error); return; } g_set_object (&self->repository, repository1); g_set_object (&self->change_monitor_repository, repository2); if (!ide_git_vcs_load_monitor (self, &error)) { g_task_return_error (task, error); return; } g_task_return_boolean (task, TRUE); }
static void ide_git_vcs_reload_worker (GTask *task, gpointer source_object, gpointer task_data, GCancellable *cancellable) { IdeGitVcs *self = source_object; g_autoptr(GgitRepository) repository1 = NULL; g_autoptr(GgitRepository) repository2 = NULL; g_autoptr(GError) error = NULL; IDE_ENTRY; g_assert (G_IS_TASK (task)); g_assert (IDE_IS_GIT_VCS (self)); g_assert (!cancellable || G_IS_CANCELLABLE (cancellable)); if (!(repository1 = ide_git_vcs_load (self, &error)) || !(repository2 = ide_git_vcs_load (self, &error))) { g_debug ("%s", error->message); g_task_return_error (task, g_steal_pointer (&error)); IDE_EXIT; } g_mutex_lock (&self->repository_mutex); g_set_object (&self->repository, repository1); g_set_object (&self->change_monitor_repository, repository2); if (!ide_git_vcs_load_monitor_locked (self, &error)) g_task_return_error (task, g_steal_pointer (&error)); else g_task_return_boolean (task, TRUE); g_mutex_unlock (&self->repository_mutex); IDE_EXIT; }