g_io_win32_dispatch yields condition=0



I'm investigating a problem under windows that appears to be a missed event.

My test viewer application is built as follows:

1. A top level widget with a GtkImage widget that shows an image.
2. The program also listens to http requests through the gnet library and allows to remote control the gui to change the image being displayed.

I can now connect to this viewer by a client and request it to change the image being displayed. Everything is working nicely except if the application is busy (see below) when the image change request arrives. To make the viewer busy I take hold on corner of the top level widget and start resizing the widget back and forth. If, when doing the resizing, a http request arrives it is not passed on to my callback routine.

The problem is the call to the GIOFunc from the g_io_win32_dispatch function. Normally I get GIOCondition=4 when data is ready to read on my gtk condition, and GIOCondition=5 when data can be written. But if I do the resizing trick when the data arrives, I instead get a call with GIOCondition=0, even though I should have got GIOCondition=4 since there is data to read on the socket. This in turn fails the following the following test in the gnet callback function:

  if (condition & G_IO_IN)

I never get any additional callback and my client is timeout since it never gets any reply.

Does anyone have any idea of what is wrong, or what additional tests I can do to help debugging this issue?

Thanks!
Dov



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