+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
GError *error = NULL;
CupsPrintStreamData *ps = user_data;
+ GDK_THREADS_ENTER ();
+
GTK_NOTE (PRINTING,
g_print ("CUPS Backend: %s\n", G_STRFUNC));
if (error)
g_error_free (error);
-
+
+ GDK_THREADS_LEAVE ();
}
static void
int state;
gboolean done;
+ GDK_THREADS_ENTER ();
+
if (data->job == NULL)
{
cups_job_poll_data_free (data);
- return;
+ goto done;
}
data->counter++;
}
else
cups_job_poll_data_free (data);
+
+done:
+ GDK_THREADS_LEAVE ();
}
static void
gboolean list_has_changed;
GList *removed_printer_checklist;
+ GDK_THREADS_ENTER ();
+
list_has_changed = FALSE;
GTK_NOTE (PRINTING,
g_signal_emit_by_name (backend, "printer-list-changed");
gtk_print_backend_set_list_done (backend);
+
+ GDK_THREADS_LEAVE ();
}
static gboolean
!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,
request,
NULL);
- GDK_THREADS_ENTER ();
-
- g_object_unref (cups_backend);
-
return TRUE;
}
ipp_t *response;
GtkPrinter *printer;
+ GDK_THREADS_ENTER ();
+
GTK_NOTE (PRINTING,
g_print ("CUPS Backend: %s\n", G_STRFUNC));
}
g_signal_emit_by_name (printer, "details-acquired", success);
- return;
+ goto done;
}
response = gtk_cups_result_get_response (result);
gtk_printer_set_has_details (printer, TRUE);
g_signal_emit_by_name (printer, "details-acquired", TRUE);
+
+done:
+ GDK_THREADS_LEAVE ();
}
static void