summaryrefslogtreecommitdiff
path: root/src/glibext/workqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/glibext/workqueue.c')
-rw-r--r--src/glibext/workqueue.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/glibext/workqueue.c b/src/glibext/workqueue.c
index ad6ede6..fe7f1bb 100644
--- a/src/glibext/workqueue.c
+++ b/src/glibext/workqueue.c
@@ -247,8 +247,13 @@ wgroup_id_t g_work_queue_define_group(GWorkQueue *queue, guint count)
do
{
- result = queue->generator++;
+ result = ++queue->generator;
+
+ if (result == INVALID_GROUP_ID)
+ continue;
+
created = g_work_queue_ensure_group_exists(queue, result, count);
+
}
while (!created);