diff options
Diffstat (limited to 'backend')
-rw-r--r-- | backend/ev-document.c | 20 | ||||
-rw-r--r-- | backend/ev-document.h | 11 |
2 files changed, 29 insertions, 2 deletions
diff --git a/backend/ev-document.c b/backend/ev-document.c index 94647c6..a951bfa 100644 --- a/backend/ev-document.c +++ b/backend/ev-document.c @@ -28,6 +28,7 @@ static void ev_document_class_init (gpointer g_class); GMutex *ev_doc_mutex = NULL; +GMutex *ev_fc_mutex = NULL; #define LOG(x) GType @@ -89,7 +90,26 @@ ev_document_doc_mutex_unlock (void) g_mutex_unlock (ev_document_get_doc_mutex ()); } +GMutex * +ev_document_get_fc_mutex (void) +{ + if (ev_fc_mutex == NULL) { + ev_fc_mutex = g_mutex_new (); + } + return ev_fc_mutex; +} +void +ev_document_fc_mutex_lock (void) +{ + g_mutex_lock (ev_document_get_fc_mutex ()); +} + +void +ev_document_fc_mutex_unlock (void) +{ + g_mutex_unlock (ev_document_get_fc_mutex ()); +} gboolean ev_document_load (EvDocument *document, diff --git a/backend/ev-document.h b/backend/ev-document.h index 0da5fc7..828ca25 100644 --- a/backend/ev-document.h +++ b/backend/ev-document.h @@ -97,10 +97,17 @@ struct _EvDocumentIface GType ev_document_get_type (void); GQuark ev_document_error_quark (void); -GMutex *ev_document_get_doc_mutex (void); -void ev_document_doc_mutex_lock (void); + +/* Document mutex */ +GMutex *ev_document_get_doc_mutex (void); +void ev_document_doc_mutex_lock (void); void ev_document_doc_mutex_unlock (void); +/* FontConfig mutex */ +GMutex *ev_document_fc_doc_mutex (void); +void ev_document_fc_mutex_lock (void); +void ev_document_fc_mutex_unlock (void); + EvDocumentInfo *ev_document_get_info (EvDocument *document); gboolean ev_document_load (EvDocument *document, const char *uri, |