gsource: document priority of child sources
authorRyan Lortie <desrt@desrt.ca>
Thu, 13 Feb 2014 15:18:03 +0000 (10:18 -0500)
committerRyan Lortie <desrt@desrt.ca>
Thu, 20 Feb 2014 23:32:42 +0000 (18:32 -0500)
Add a note to the documentation that child sources cannot have their priority
changed independently from their parent.  Add a g_return_if_fail() to the
public API in order to enforce this.

This was already a reality due to the check in
g_source_set_priority_unlocked(), but it was never explicitly documented.

https://bugzilla.gnome.org/show_bug.cgi?id=724706

glib/gmain.c

index c65d24f..e74590a 100644 (file)
@@ -1706,6 +1706,10 @@ g_source_set_priority_unlocked (GSource      *source,
  * source will be dispatched if it is ready to be dispatched and no
  * sources at a higher (numerically smaller) priority are ready to be
  * dispatched.
+ *
+ * A child source always has the same priority as its parent.  It is not
+ * permitted to change the priority of a source once it has been added
+ * as a child of another source.
  **/
 void
 g_source_set_priority (GSource  *source,
@@ -1714,6 +1718,7 @@ g_source_set_priority (GSource  *source,
   GMainContext *context;
 
   g_return_if_fail (source != NULL);
+  g_return_if_fail (source->priv->parent_source == NULL);
 
   context = source->context;