diff options
author | Alexander Larsson <alexl@redhat.com> | 2006-05-15 15:24:12 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2006-05-15 15:24:12 +0000 |
commit | 5e0dc70323142a60f363f66d7994ed0b5a381d4c (patch) | |
tree | bb21722e5d97a107eacc63a96c23a1d74cbbbb56 /modules | |
parent | 62ede1134c6bad75147eb399f311ad2aec6fd8f1 (diff) | |
download | gtk+-5e0dc70323142a60f363f66d7994ed0b5a381d4c.tar.gz |
Never unload print backends. Remove gtk_print_backend_unref_at_idle.
2006-05-15 Alexander Larsson <alexl@redhat.com>
* gtk/gtk.symbols:
* gtk/gtkprintbackend.[ch]: (_gtk_print_backend_create):
Never unload print backends.
Remove gtk_print_backend_unref_at_idle.
* modules/printbackends/cups/gtkprintbackendcups.c:
(cups_dispatch_watch_finalize):
Don't use the unref_at_idle hack since that caused
deadlocks. Instead we never unload print backends, which
is not really a big problem.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/printbackends/cups/gtkprintbackendcups.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/modules/printbackends/cups/gtkprintbackendcups.c b/modules/printbackends/cups/gtkprintbackendcups.c index 3380d8970d..006e5d446f 100644 --- a/modules/printbackends/cups/gtkprintbackendcups.c +++ b/modules/printbackends/cups/gtkprintbackendcups.c @@ -547,10 +547,15 @@ cups_dispatch_watch_finalize (GSource *source) if (dispatch->backend) { /* We need to unref this at idle time, because it might be the - last reference to this module causing the code to be - unloaded (including this particular function!) - */ - gtk_print_backend_unref_at_idle (GTK_PRINT_BACKEND (dispatch->backend)); + * last reference to this module causing the code to be + * unloaded (including this particular function!) + * Update: Doing this at idle caused a deadlock taking the + * mainloop context lock while being in a GSource callout for + * multithreaded apps. So, for now we just disable unloading + * of print backends. See _gtk_print_backend_create for the + * disabling. + */ + g_object_unref (dispatch->backend); dispatch->backend = NULL; } |