Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Lachu:SystemServices
Lachu-PackageKit
0035-Properly-handling-errors-with-dependency-s...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0035-Properly-handling-errors-with-dependency-solver-comm.patch of Package Lachu-PackageKit
From 1f13264a494a4b0835ee934c4644c47a1ec55055 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C5=82awomir=20Lach?= <slawek@lach.art.pl> Date: Fri, 28 May 2021 18:29:51 +0200 Subject: [PATCH 35/46] - Properly handling errors with dependency-solver communication --- backends/zypp/pk-backend-zypp.cpp | 2 ++ src/pk-backend-job.c | 17 +++++++++++++++-- src/pk-backend-job.h | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp index 685076664..3ae6f4d09 100644 --- a/backends/zypp/pk-backend-zypp.cpp +++ b/backends/zypp/pk-backend-zypp.cpp @@ -1962,6 +1962,8 @@ dependency_handle_selection(GIOChannel *source, G_IO_NVAL == (G_IO_NVAL & condition)) { pk_backend_job_error_code (msg_proc->job, PK_ERROR_ENUM_DEP_RESOLUTION_FAILED, "Error when handling dependency. PIPE problem"); + + pk_backend_job_done (msg_proc->job->helper); return FALSE; } diff --git a/src/pk-backend-job.c b/src/pk-backend-job.c index 55c1c49d8..080011b32 100644 --- a/src/pk-backend-job.c +++ b/src/pk-backend-job.c @@ -739,8 +739,7 @@ pk_backend_job_thread_setup (gpointer thread_data) /* destroy helper */ - // TODO: S.L SL Jeżeli pewne pole wskazuje, że zadanie nie jest zakończone, to nie wykonujemy poniższego wywołania - // Podobnie poniższe 4 linijki + if (helper->job->done) { g_object_unref (helper->job); if (helper->destroy_func != NULL) @@ -752,6 +751,20 @@ pk_backend_job_thread_setup (gpointer thread_data) return NULL; } +void pk_backend_job_done (gpointer thread_data) +{ + PkBackendJobThreadHelper *helper = (PkBackendJobThreadHelper *) thread_data; + + pk_backend_job_finished (helper->job); + + g_object_unref (helper->job); + if (helper->destroy_func != NULL) + helper->destroy_func (helper->user_data); + g_free (helper); + pk_backend_thread_stop (helper->backend, helper->job, helper->func); + +} + /** * pk_backend_job_thread_create: * @func: (scope call): diff --git a/src/pk-backend-job.h b/src/pk-backend-job.h index f484fa06e..c8855c42e 100644 --- a/src/pk-backend-job.h +++ b/src/pk-backend-job.h @@ -262,6 +262,7 @@ gboolean pk_backend_job_get_started (PkBackendJob *job); void *pk_backend_job_get_priv_data (PkBackendJob *job); void pk_backend_job_set_priv_data (PkBackendJob *job, void *a); +void pk_backend_job_done (gpointer thread_data); gpointer pk_backend_job_thread_setup (gpointer thread_data); G_END_DECLS -- 2.32.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor