<br><div><span class="gmail_quote">On 7/19/07, <b class="gmail_sendername">Mauro SÚrgio Ferreira Brasil</b> <<a href="mailto:mauro.brasil@tqi.com.br">mauro.brasil@tqi.com.br</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



  
  

<div bgcolor="#ffffff" text="#000000">I run out on problems that should happen with libpurple when used with
Pidgin (gtk interface), but they just don't happen.<br>
And I confess that it makes me crazy the thinks I needed to do here to
avoid some situations when using libpurple with a WTL application of
our customer.<br>
<br>
One example was the GMutex used on "send_cb" method of
"flap_connection.c" file from ICQ protocol. This mutex has the simple
purpose to assure the ICQ primitives will have different sequence
numbers.<br>
Without this change, ICQ protocol hangs up all time, and I took a
little longer to realize that some primitives were being sent with the
same sequence number, what leaded to protocolo hang up.<br>
<br>
Race conditions like this were found when we issue a disconnection,
while a connection process is taking place.<br>
This causes lots of crashes with ICQ and MSN protocols here.<br>
And the solution again was insert some mutexes, in order to serialize
the two conflicting elements: 1- Handling of protocol primitives
received, and 2- Disconnection procedure.</div></blockquote><div><br>Unless I'm mistaken, we established that these were synchronization problems because you were (are?) trying to use libpurple from several threads.<br>
<br>-D<br> </div><br></div><br>