summaryrefslogtreecommitdiff
path: root/src/glibext/delayed.h
diff options
context:
space:
mode:
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);