socket inputs handled in reverse order?
- From: skip pobox com
 
- To: gtk-list gnome org
 
- Subject: socket inputs handled in reverse order?
 
- Date: Sat, 17 Sep 2005 22:10:44 -0500
 
We have a PyGTK application at work that uses gobject signals and the
gobject/gtk main loop to process event input and simultaneously listen for
data arriving on a socket.  A homegrown low-level C++ library calls
g_io_add_watch_full with G_PRIORITY_HIGH_IDLE on the channel associated with
the socket.
Most of the time everything works fine.  Input arrives at the handler and is
then distributed to all interested parties via a gobject emit() call.
Sometimes though, we can see that a burst of inputs are processed in reverse
order.  In our low level handler we print out the information received.  It
might print
    1
    2
    3
    4
    5
In one of the client routines we display the same information and see it
printed in reverse order:
    5
    4
    3
    2
    1
Is it possible the signal emission for packet #1 is interrupted by more
input waiting on the socket?  If so, what can we do to insure processing of
one packet is complete before the next packet is processed?
Thanks,
-- 
Skip Montanaro
Katrina Benefit Concerts: http://www.musi-cal.com/katrina
skip pobox com
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]