diff options
author | Alexander Larsson <alexl@src.gnome.org> | 2007-09-13 11:54:28 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2007-09-13 11:54:28 +0000 |
commit | 754ba4daf054e12746595ab5c1e9a4f5598b12e1 (patch) | |
tree | f45379c76ecec7fec56605c122e9f19f3211382b | |
parent | 0d563301b7ad117c2938279cb5d4bb4a352821db (diff) | |
download | gvfs-754ba4daf054e12746595ab5c1e9a4f5598b12e1.tar.gz |
Add job thread limit
Original git commit by Alexander Larsson <alex@greebo.(none)> at 1171549797 +0100
svn path=/trunk/; revision=348
-rw-r--r-- | daemon/Makefile.am | 2 | ||||
-rw-r--r-- | daemon/daemon-main-generic.c | 5 | ||||
-rw-r--r-- | daemon/daemon-main.c | 3 | ||||
-rw-r--r-- | daemon/daemon-main.h | 1 | ||||
-rw-r--r-- | daemon/gvfsdaemon.c | 7 | ||||
-rw-r--r-- | daemon/gvfsdaemon.h | 2 |
6 files changed, 20 insertions, 0 deletions
diff --git a/daemon/Makefile.am b/daemon/Makefile.am index 59981f9c..6427d031 100644 --- a/daemon/Makefile.am +++ b/daemon/Makefile.am @@ -90,6 +90,7 @@ gvfs_daemon_smb_SOURCES = \ gvfs_daemon_smb_CPPFLAGS = \ -DBACKEND_HEADER=gvfsbackendsmb.h \ -DDEFAULT_BACKEND_TYPE=smb-share \ + -DMAX_JOB_THREADS=1 \ -DBACKEND_TYPES='"smb-share", G_TYPE_VFS_BACKEND_SMB,' gvfs_daemon_smb_LDADD = $(SAMBA_LIBS) $(libraries) @@ -102,6 +103,7 @@ gvfs_daemon_smb_browse_SOURCES = \ gvfs_daemon_smb_browse_CPPFLAGS = \ -DBACKEND_HEADER=gvfsbackendsmbbrowse.h \ -DMOUNTABLE_DBUS_NAME=org.gtk.vfs.mountpoint.smb_browse \ + -DMAX_JOB_THREADS=1 \ -DBACKEND_TYPES='"smb-network", G_TYPE_VFS_BACKEND_SMB_BROWSE,"smb-server", G_TYPE_VFS_BACKEND_SMB_BROWSE,' gvfs_daemon_smb_browse_LDADD = $(SAMBA_LIBS) $(libraries) diff --git a/daemon/daemon-main-generic.c b/daemon/daemon-main-generic.c index c8d24ce5..312ee877 100644 --- a/daemon/daemon-main-generic.c +++ b/daemon/daemon-main-generic.c @@ -9,6 +9,11 @@ main (int argc, char *argv[]) { daemon_init (); daemon_main (argc, argv, +#ifdef MAX_JOB_THREADS + MAX_JOB_THREADS, +#else + -1, +#endif #ifdef DEFAULT_BACKEND_TYPE G_STRINGIFY(DEFAULT_BACKEND_TYPE), #else diff --git a/daemon/daemon-main.c b/daemon/daemon-main.c index f6b97800..87938a71 100644 --- a/daemon/daemon-main.c +++ b/daemon/daemon-main.c @@ -94,6 +94,7 @@ daemon_parse_args (int argc, char *argv[], const char *default_type) void daemon_main (int argc, char *argv[], + int max_job_threads, const char *default_type, const char *mountable_name, const char *first_type_name, @@ -161,6 +162,8 @@ daemon_main (int argc, exit (1); } + g_vfs_daemon_set_max_threads (daemon, max_job_threads); + if (mount_source) { g_vfs_daemon_initiate_mount (daemon, mount_source); diff --git a/daemon/daemon-main.h b/daemon/daemon-main.h index cb6818eb..4c0eec13 100644 --- a/daemon/daemon-main.h +++ b/daemon/daemon-main.h @@ -11,6 +11,7 @@ GMountSource *daemon_parse_args (int argc, const char *default_type); void daemon_main (int argc, char *argv[], + int max_job_threads, const char *default_type, const char *mountable_name, const char *first_type_name, diff --git a/daemon/gvfsdaemon.c b/daemon/gvfsdaemon.c index 249296ff..d37971ad 100644 --- a/daemon/gvfsdaemon.c +++ b/daemon/gvfsdaemon.c @@ -241,6 +241,13 @@ g_vfs_daemon_new (gboolean main_daemon, gboolean replace) return daemon; } +void +g_vfs_daemon_set_max_threads (GVfsDaemon *daemon, + gint max_threads) +{ + g_thread_pool_set_max_threads (daemon->thread_pool, max_threads, NULL); +} + static gboolean exit_at_idle (gpointer data) { diff --git a/daemon/gvfsdaemon.h b/daemon/gvfsdaemon.h index dc532f7e..792a271e 100644 --- a/daemon/gvfsdaemon.h +++ b/daemon/gvfsdaemon.h @@ -31,6 +31,8 @@ GType g_vfs_daemon_get_type (void) G_GNUC_CONST; GVfsDaemon *g_vfs_daemon_new (gboolean main_daemon, gboolean replace); +void g_vfs_daemon_set_max_threads (GVfsDaemon *daemon, + gint max_threads); void g_vfs_daemon_add_job_source (GVfsDaemon *daemon, GVfsJobSource *job_source); void g_vfs_daemon_queue_job (GVfsDaemon *daemon, |