diff options
author | Guido Günther <agx@sigxcpu.org> | 2014-02-05 08:38:23 +0100 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2014-02-05 08:38:23 +0100 |
commit | dc645b92b9a7db3076ae34986ac219d01677d124 (patch) | |
tree | 963a5d6ad150a88a2a8ab6d994d79d539e19383a /src/mm-callback-info.c | |
parent | 87bd9deec22af69bb27226254803ac5c63b18d78 (diff) |
Imported Upstream version 0.4+git.20100624t180933.6e79d15upstream/0.4+git.20100624t180933.6e79d15
Diffstat (limited to 'src/mm-callback-info.c')
-rw-r--r-- | src/mm-callback-info.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/mm-callback-info.c b/src/mm-callback-info.c index 1882898..1986bb5 100644 --- a/src/mm-callback-info.c +++ b/src/mm-callback-info.c @@ -91,6 +91,8 @@ mm_callback_info_schedule (MMCallbackInfo *info) g_return_if_fail (info->pending_id == 0); g_return_if_fail (info->called == FALSE); + g_warn_if_fail (info->chain_left == 0); + info->pending_id = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, callback_info_do, info, callback_info_done); } @@ -208,3 +210,24 @@ mm_callback_info_unref (MMCallbackInfo *info) } } +void +mm_callback_info_chain_start (MMCallbackInfo *info, guint num) +{ + g_return_if_fail (info != NULL); + g_return_if_fail (num > 0); + g_return_if_fail (info->chain_left == 0); + + info->chain_left = num; +} + +void +mm_callback_info_chain_complete_one (MMCallbackInfo *info) +{ + g_return_if_fail (info != NULL); + g_return_if_fail (info->chain_left > 0); + + info->chain_left--; + if (info->chain_left == 0) + mm_callback_info_schedule (info); +} + |