[telepathy-mission-control/telepathy-mission-control-5.2] McdDispatcher: block dispatch operations from finishing until all observers have replied
Simon McVittie
simon.mcvittie at collabora.co.uk
Tue Aug 25 09:24:35 PDT 2009
In particular, this means that if an observer or approver calls Claim,
it won't get a reply until all other observers have had a chance to start.
This is necessary if the observer/approver will be acknowledging Text
messages, which a logger observer would miss as a result.
---
src/mcd-dispatcher.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/src/mcd-dispatcher.c b/src/mcd-dispatcher.c
index b21060b..1ab97e1 100644
--- a/src/mcd-dispatcher.c
+++ b/src/mcd-dispatcher.c
@@ -1030,6 +1030,11 @@ observe_channels_cb (TpClient *proxy, const GError *error,
if (error)
DEBUG ("Observer returned error: %s", error->message);
+ if (context->operation)
+ {
+ _mcd_dispatch_operation_unblock_finished (context->operation);
+ }
+
mcd_dispatcher_context_release_client_lock (context);
}
@@ -1130,6 +1135,7 @@ mcd_dispatcher_run_observers (McdDispatcherContext *context)
{
dispatch_operation_path =
mcd_dispatch_operation_get_path (context->operation);
+ _mcd_dispatch_operation_block_finished (context->operation);
}
context->client_locks++;
--
1.5.6.5
More information about the telepathy-commits
mailing list