Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/libdocument
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2008-08-03 11:01:28 (GMT)
committer Carlos Garcia Campos <carlosgc@src.gnome.org>2008-08-03 11:01:28 (GMT)
commite71d27db284ccf431167816167bf72f1e23c334d (patch)
tree1f1d9aff48947adcbaecbdfe3b181f6adb00cb3e /libdocument
parenta68744f0210c49bcaded78edd29e7198bf58f8e7 (diff)
Rework the jobs system in order to make it simpler and more extensible. It
2008-08-03 Carlos Garcia Campos <carlosgc@gnome.org> * libdocument/ev-document.[ch]: (ev_document_doc_mutex_trylock), (ev_document_fc_mutex_trylock): * shell/Makefile.am: * shell/ev-job-queue.[ch]: * shell/ev-job-scheduler.[ch]: * shell/ev-jobs.[ch]: (ev_job_init), (ev_job_dispose), (ev_job_class_init), (emit_finished), (ev_job_emit_finished), (ev_job_run), (ev_job_cancel), (ev_job_failed), (ev_job_failed_from_error), (ev_job_succeeded), (ev_job_is_finished), (ev_job_is_failed), (ev_job_get_run_mode), (ev_job_set_run_mode), (ev_job_links_init), (ev_job_links_run), (ev_job_links_class_init), (ev_job_render_init), (notify_page_ready), (ev_job_render_page_ready), (ev_job_render_run), (ev_job_render_class_init), (ev_job_thumbnail_init), (ev_job_thumbnail_run), (ev_job_thumbnail_class_init), (ev_job_fonts_init), (ev_job_fonts_run), (ev_job_fonts_class_init), (ev_job_load_init), (ev_job_load_run), (ev_job_load_class_init), (ev_job_save_init), (ev_job_save_dispose), (ev_job_save_run), (ev_job_save_class_init), (ev_job_print_init), (ev_job_print_dispose), (ev_job_print_run), (ev_job_print_class_init): * shell/ev-page-cache.c: * shell/ev-pixbuf-cache.[ch]: (dispose_cache_job_info), (check_job_size_and_unref), (move_one_job), (copy_job_to_job_info), (add_job), (ev_pixbuf_cache_add_jobs_if_needed): * shell/ev-properties-fonts.c: (ev_properties_fonts_dispose), (job_fonts_finished_cb), (job_fonts_updated_cb), (ev_properties_fonts_set_document): * shell/ev-sidebar-links.c: (ev_sidebar_links_dispose), (ev_sidebar_links_set_document): * shell/ev-sidebar-thumbnails.c: (clear_range), (add_range), (ev_sidebar_thumbnails_set_document), (ev_sidebar_thumbnails_clear_job): * shell/ev-view-private.h: * shell/ev-view.c: * shell/ev-window.c: (ev_window_clear_thumbnail_job), (ev_window_refresh_window_thumbnail), (password_dialog_response), (ev_window_clear_load_job), (ev_window_clear_reload_job), (ev_window_load_job_cb), (ev_window_reload_job_cb), (window_open_file_copy_ready_cb), (ev_window_open_uri), (ev_window_reload_document), (ev_window_clear_save_job), (ev_window_save_job_cb), (file_save_dialog_response_cb), (ev_window_clear_print_job), (ev_window_print_job_cb), (ev_window_print_dialog_response_cb): * shell/main.c: (main): Rework the jobs system in order to make it simpler and more extensible. It allows to run jobs in the main loop instead of using a thread when it's appropriate like the fonts job. Now it's also possible to cancel jobs that are currently running. svn path=/trunk/; revision=3092
Diffstat (limited to 'libdocument')
-rw-r--r--libdocument/ev-document.c12
-rw-r--r--libdocument/ev-document.h2
2 files changed, 14 insertions, 0 deletions
diff --git a/libdocument/ev-document.c b/libdocument/ev-document.c
index 7bb86be..1171509 100644
--- a/libdocument/ev-document.c
+++ b/libdocument/ev-document.c
@@ -89,6 +89,12 @@ ev_document_doc_mutex_unlock (void)
g_mutex_unlock (ev_document_get_doc_mutex ());
}
+gboolean
+ev_document_doc_mutex_trylock (void)
+{
+ return g_mutex_trylock (ev_document_get_doc_mutex ());
+}
+
GMutex *
ev_document_get_fc_mutex (void)
{
@@ -111,6 +117,12 @@ ev_document_fc_mutex_unlock (void)
}
gboolean
+ev_document_fc_mutex_trylock (void)
+{
+ return g_mutex_trylock (ev_document_get_fc_mutex ());
+}
+
+gboolean
ev_document_load (EvDocument *document,
const char *uri,
GError **error)
diff --git a/libdocument/ev-document.h b/libdocument/ev-document.h
index cfcccdb..367d6e6 100644
--- a/libdocument/ev-document.h
+++ b/libdocument/ev-document.h
@@ -101,11 +101,13 @@ GQuark ev_document_error_quark (void);
GMutex *ev_document_get_doc_mutex (void);
void ev_document_doc_mutex_lock (void);
void ev_document_doc_mutex_unlock (void);
+gboolean ev_document_doc_mutex_trylock(void);
/* FontConfig mutex */
GMutex *ev_document_get_fc_mutex (void);
void ev_document_fc_mutex_lock (void);
void ev_document_fc_mutex_unlock (void);
+gboolean ev_document_fc_mutex_trylock (void);
EvDocumentInfo *ev_document_get_info (EvDocument *document);
gboolean ev_document_load (EvDocument *document,