[empathy] Fix a theoretical race listing pending messages



commit b747b97984784a82724e538942854b89d3309006
Author: Will Thompson <will thompson collabora co uk>
Date:   Sat Apr 25 10:07:31 2009 +0100

    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 <will thompson collabora co uk>
---
 libempathy/empathy-tp-chat.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c
index 54e08d0..2f951e0 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,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]