From b747b97984784a82724e538942854b89d3309006 Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Sat, 25 Apr 2009 10:07:31 +0100 Subject: Fix a theoretical race listing pending messages If you call ListPendingMessages before connecting to Received, the following could theoretically occur: Empathy --- ListPendingMessages --> CM Empathy <-- LPM returns --- CM <----- CM -----> Received Empathy connects to Received and thus you could miss a message. Connecting to Received before calling ListPendingMessages avoids this (mostly theoretical) bug. Signed-off-by: Will Thompson --- libempathy/empathy-tp-chat.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'libempathy') diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c index 54e08d071..2f951e040 100644 --- a/libempathy/empathy-tp-chat.c +++ b/libempathy/empathy-tp-chat.c @@ -753,6 +753,10 @@ tp_chat_check_if_ready (EmpathyTpChat *chat) DEBUG ("Ready!"); + tp_cli_channel_type_text_connect_to_received (priv->channel, + tp_chat_received_cb, + NULL, NULL, + G_OBJECT (chat), NULL); priv->listing_pending_messages = TRUE; tp_cli_channel_type_text_call_list_pending_messages (priv->channel, -1, FALSE, @@ -760,10 +764,6 @@ tp_chat_check_if_ready (EmpathyTpChat *chat) NULL, NULL, G_OBJECT (chat)); - tp_cli_channel_type_text_connect_to_received (priv->channel, - tp_chat_received_cb, - NULL, NULL, - G_OBJECT (chat), NULL); tp_cli_channel_type_text_connect_to_sent (priv->channel, tp_chat_sent_cb, NULL, NULL, -- cgit v1.2.3