summaryrefslogtreecommitdiff
path: root/src/glibext/delayed.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2015-11-11 21:00:05 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2015-11-11 21:00:05 (GMT)
commit0727204e36e919f06e80181482981c3f19669d76 (patch)
treeada49befbc7d91d21623f5221a2f7001d4b741a2 /src/glibext/delayed.h
parentdc49b249f21c1c8582b9ca8debdd5fbdd15eadae (diff)
Prepared the next generation of parallel processings.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@606 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/glibext/delayed.h')
-rw-r--r--src/glibext/delayed.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/glibext/delayed.h b/src/glibext/delayed.h
index 03aa873..0a27c93 100644
--- a/src/glibext/delayed.h
+++ b/src/glibext/delayed.h
@@ -74,6 +74,13 @@ typedef struct _GWorkQueue GWorkQueue;
typedef struct _GWorkQueueClass GWorkQueueClass;
+/* Identifiant unique pour groupe de travail */
+typedef unsigned long long wgroup_id_t;
+
+/* Groupe d'exécution par défaut */
+#define DEFAULT_WORK_GROUP 0
+
+
#define get_work_queue() _get_work_queue(NULL)
@@ -86,8 +93,17 @@ bool init_work_queue(GObject *);
/* Fournit le gestionnaire de traitements parallèles courant. */
GWorkQueue *_get_work_queue(GWorkQueue *);
+/* Constitue un nouveau groupe de travail. */
+wgroup_id_t g_work_queue_define_work_group(GWorkQueue *);
+
+/* Dissout un groupe de travail existant. */
+void g_work_queue_delete_work_group(GWorkQueue *, wgroup_id_t);
+
/* Place une nouvelle tâche en attente. */
-void g_work_queue_schedule_work(GWorkQueue *, GDelayedWork *);
+void g_work_queue_schedule_work(GWorkQueue *, GDelayedWork *, wgroup_id_t);
+
+/* Attend que toutes les tâches d'un groupe soient traitées. */
+void g_work_queue_wait_for_completion(GWorkQueue *, wgroup_id_t);