fuse: Make filesystem multithreaded

This allows us to handle multiple apps better.
This commit is contained in:
Alexander Larsson committed 2015-09-03 22:16:43 +02:00
1 parent 58fb2c4e50
commit 4a298aeec3
2 files changed
+625 -393

No files matched your search

+614 -391
View File
File diff suppressed because it is too large. Load diff
+11 -2
View File
@@ -34,12 +34,15 @@ typedef struct
static GMainLoop *loop = NULL;
static XdgAppDb *db = NULL;
XdgAppPermissionStore *permission_store;
static XdgAppPermissionStore *permission_store;
static GDBusNodeInfo *introspection_data = NULL;
G_LOCK_DEFINE(db);
char **
xdp_list_apps (void)
{
AUTOLOCK(db);
return xdg_app_db_list_apps (db);
}
@@ -51,6 +54,8 @@ xdp_list_docs (void)
guint32 id;
int i;
AUTOLOCK(db);
res = g_array_new (TRUE, FALSE, sizeof (guint32));
ids = xdg_app_db_list_ids (db);
@@ -72,6 +77,7 @@ xdp_lookup_doc (guint32 id)
{
g_autofree char *doc_id = xdp_name_from_id (id);
AUTOLOCK(db);
return xdg_app_db_lookup (db, doc_id);
}
@@ -388,7 +394,10 @@ got_app_id_cb (GObject *source_object,
if (app_id == NULL)
g_dbus_method_invocation_return_gerror (invocation, error);
else
portal_method (invocation, g_dbus_method_invocation_get_parameters (invocation), app_id);
{
AUTOLOCK(db);
portal_method (invocation, g_dbus_method_invocation_get_parameters (invocation), app_id);
}
}
static gboolean