diff --git a/clutter/clutter-timeout-pool.c b/clutter/clutter-timeout-pool.c index 083d82214..5aca8918e 100644 --- a/clutter/clutter-timeout-pool.c +++ b/clutter/clutter-timeout-pool.c @@ -308,9 +308,18 @@ clutter_timeout_pool_finalize (GSource *source) /** * clutter_timeout_pool_new: - * @priority: + * @priority: the priority of the timeout pool. Typically this will + * be #G_PRIORITY_DEFAULT * - * FIXME + * Creates a new timeout pool source. A timeout pool should be used when + * multiple timeout functions, running at the same priority, are needed and + * the g_timeout_add() API might lead to starvation of the time slice of + * the main loop. A timeout pool allocates a single time slice of the main + * loop and runs every timeout function inside it. The timeout pool is + * always sorted, so that the extraction of the next timeout function is + * a constant time operation. + * + * Inside Clutter, every #ClutterTimeline share the same timeout pool. * * Return value: the newly created #ClutterTimeoutPool * @@ -342,14 +351,25 @@ clutter_timeout_pool_new (gint priority) /** * clutter_timeout_pool_add: * @pool: a #ClutterTimeoutPool - * @interval: FIXME - * @func: FIXME - * @data: FIXME - * @notify: FIXME + * @interval: the time between calls to the function, in milliseconds + * @func: function to call + * @data: data to pass to the function, or %NULL + * @notify: function to call when the timeout is removed, or %NULL * - * FIXME + * Sets a function to be called at regular intervals, and puts it inside + * the @pool. The function is repeatedly called until it returns %FALSE, + * at which point the timeout is automatically destroyed and the function + * won't be called again. If @notify is not %NULL, the @notify function + * will be called. The first call to @func will be at the end of @interval. * - * Return value: FIXME + * Note that timeout functions may be delayed, due to the processing of other + * event sources. Thus they should not be relied on for precise timing. + * After each call to the timeout function, the time of the next + * timeout is recalculated based on the current time and the given interval + * (it does not try to 'catch up' time lost in delays). + * + * Return value: the ID (greater than 0) of the timeout inside the pool. + * Use clutter_timeout_pool_remove() to stop the timeout. * * Since: 0.4 */ @@ -379,9 +399,11 @@ clutter_timeout_pool_add (ClutterTimeoutPool *pool, /** * clutter_timeout_pool_remove: * @pool: a #ClutterTimeoutPool - * @id: FIXME + * @id: the id of the timeout to remove * - * FIXME + * Removes a timeout function with @id from the timeout pool. The id + * is the same returned when adding a function to the timeout pool with + * clutter_timeout_pool_add(). * * Since: 0.4 */ diff --git a/doc/reference/clutter-sections.txt b/doc/reference/clutter-sections.txt index cda00c0d7..e16804ffa 100644 --- a/doc/reference/clutter-sections.txt +++ b/doc/reference/clutter-sections.txt @@ -646,6 +646,10 @@ clutter_backend_get_type clutter-util Utilities clutter_util_next_p2 +ClutterTimeoutPool +clutter_timeout_pool_new +clutter_timeout_pool_add +clutter_timeout_pool_remove