Fix some locking issues
svn path=/trunk/; revision=18105
This commit is contained in:
@ -1,3 +1,9 @@
|
||||
2007-06-11 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* modules/printbackends/cups/gtkprintbackendfile.c:
|
||||
* modules/printbackends/cups/gtkprintbackendcups.c: Fix some
|
||||
locking issues. (#420249, Christian Persch)
|
||||
|
||||
2007-06-11 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* configure.in: When debugging is turned on, use error-checking
|
||||
|
@ -341,6 +341,8 @@ cups_print_cb (GtkPrintBackendCups *print_backend,
|
||||
GError *error = NULL;
|
||||
CupsPrintStreamData *ps = user_data;
|
||||
|
||||
GDK_THREADS_ENTER ();
|
||||
|
||||
GTK_NOTE (PRINTING,
|
||||
g_print ("CUPS Backend: %s\n", G_STRFUNC));
|
||||
|
||||
@ -375,7 +377,8 @@ cups_print_cb (GtkPrintBackendCups *print_backend,
|
||||
|
||||
if (error)
|
||||
g_error_free (error);
|
||||
|
||||
|
||||
GDK_THREADS_LEAVE ();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -818,10 +821,12 @@ cups_request_job_info_cb (GtkPrintBackendCups *print_backend,
|
||||
int state;
|
||||
gboolean done;
|
||||
|
||||
GDK_THREADS_ENTER ();
|
||||
|
||||
if (data->job == NULL)
|
||||
{
|
||||
cups_job_poll_data_free (data);
|
||||
return;
|
||||
goto done;
|
||||
}
|
||||
|
||||
data->counter++;
|
||||
@ -880,6 +885,9 @@ cups_request_job_info_cb (GtkPrintBackendCups *print_backend,
|
||||
}
|
||||
else
|
||||
cups_job_poll_data_free (data);
|
||||
|
||||
done:
|
||||
GDK_THREADS_LEAVE ();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -968,6 +976,8 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
|
||||
gboolean list_has_changed;
|
||||
GList *removed_printer_checklist;
|
||||
|
||||
GDK_THREADS_ENTER ();
|
||||
|
||||
list_has_changed = FALSE;
|
||||
|
||||
GTK_NOTE (PRINTING,
|
||||
@ -1182,6 +1192,8 @@ done:
|
||||
g_signal_emit_by_name (backend, "printer-list-changed");
|
||||
|
||||
gtk_print_backend_set_list_done (backend);
|
||||
|
||||
GDK_THREADS_LEAVE ();
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@ -1204,10 +1216,6 @@ cups_request_printer_list (GtkPrintBackendCups *cups_backend)
|
||||
!cups_backend->got_default_printer)
|
||||
return TRUE;
|
||||
|
||||
g_object_ref (cups_backend);
|
||||
|
||||
GDK_THREADS_LEAVE ();
|
||||
|
||||
cups_backend->list_printers_pending = TRUE;
|
||||
|
||||
request = gtk_cups_request_new (NULL,
|
||||
@ -1227,10 +1235,6 @@ cups_request_printer_list (GtkPrintBackendCups *cups_backend)
|
||||
request,
|
||||
NULL);
|
||||
|
||||
GDK_THREADS_ENTER ();
|
||||
|
||||
g_object_unref (cups_backend);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -1274,6 +1278,8 @@ cups_request_ppd_cb (GtkPrintBackendCups *print_backend,
|
||||
ipp_t *response;
|
||||
GtkPrinter *printer;
|
||||
|
||||
GDK_THREADS_ENTER ();
|
||||
|
||||
GTK_NOTE (PRINTING,
|
||||
g_print ("CUPS Backend: %s\n", G_STRFUNC));
|
||||
|
||||
@ -1294,7 +1300,7 @@ cups_request_ppd_cb (GtkPrintBackendCups *print_backend,
|
||||
}
|
||||
|
||||
g_signal_emit_by_name (printer, "details-acquired", success);
|
||||
return;
|
||||
goto done;
|
||||
}
|
||||
|
||||
response = gtk_cups_result_get_response (result);
|
||||
@ -1305,6 +1311,9 @@ cups_request_ppd_cb (GtkPrintBackendCups *print_backend,
|
||||
|
||||
gtk_printer_set_has_details (printer, TRUE);
|
||||
g_signal_emit_by_name (printer, "details-acquired", TRUE);
|
||||
|
||||
done:
|
||||
GDK_THREADS_LEAVE ();
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -326,6 +326,8 @@ file_print_cb (GtkPrintBackendFile *print_backend,
|
||||
{
|
||||
_PrintStreamData *ps = (_PrintStreamData *) user_data;
|
||||
|
||||
GDK_THREADS_ENTER ();
|
||||
|
||||
if (ps->target_io != NULL)
|
||||
g_io_channel_unref (ps->target_io);
|
||||
|
||||
@ -342,6 +344,8 @@ file_print_cb (GtkPrintBackendFile *print_backend,
|
||||
g_object_unref (ps->job);
|
||||
|
||||
g_free (ps);
|
||||
|
||||
GDK_THREADS_LEAVE ();
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
Reference in New Issue
Block a user