]> git.street.me.uk Git - andy/viking.git/blobdiff - src/background.h
Split background threads into two pools.
[andy/viking.git] / src / background.h
index 01e1bfde2bff5ee8f839c51da0cda6bf2cd4cfc6..e84afb7b164b9d700d585631f4b8ac75fa7ef24c 100644 (file)
@@ -32,8 +32,12 @@ G_BEGIN_DECLS
 typedef void(*vik_thr_free_func)(gpointer);
 typedef void(*vik_thr_func)(gpointer,gpointer);
 
-/* the new way */
-void a_background_thread ( GtkWindow *parent, const gchar *message, vik_thr_func func, gpointer userdata, vik_thr_free_func userdata_free_func, vik_thr_free_func userdata_cancel_cleanup_func, gint number_items );
+typedef enum {
+  BACKGROUND_POOL_REMOTE, // i.e. Network requests - can have an arbitary large pool
+  BACKGROUND_POOL_LOCAL,  // i.e. CPU bound tasks - pool should be no larger than available CPUs for best performance
+} Background_Pool_Type;
+
+void a_background_thread ( Background_Pool_Type bp, GtkWindow *parent, const gchar *message, vik_thr_func func, gpointer userdata, vik_thr_free_func userdata_free_func, vik_thr_free_func userdata_cancel_cleanup_func, gint number_items );
 int a_background_thread_progress ( gpointer callbackdata, gdouble fraction );
 int a_background_testcancel ( gpointer callbackdata );
 void a_background_show_window ();