[Interest] QUdpSocket not always signalling when datagrams are available.

Robert Daniels c.robert.daniels at gmail.com
Mon Jun 29 19:30:44 CEST 2015


I've been testing with the new Qt 5.5 release candidate and have had
issues with our application ceasing to get notified of new datagrams.

We have a simple signal handler that follows the example given in the
documentation that loops while the socket indicates that there are
still datagrams available. To test, I set up a timer to poll the
'hasPendingDatagrams' property and see that when I stop processing
datagrams
the socket still indicates that there are datagrams available.

After investigating QAbstractSocketPrivate::canReadNotification I am
wondering if there is an issue there with a recent patch which turns
off
the socket engine read notification. Is it possible that in the signal
handler I read all datagrams and between the time I complete my
processing and the time the abstract socket checks to see if there are
pending datagrams, the socket could have received a new datagram
my signal handler didn't see but now the abstract socket does see?

It seems like the read notification should not be disabled if the
signal handler read until there was no more data.

Does this seem reasonable and is there a way to prevent the disabling
of the read notification under this circumstance?

Thanks,

Robert Daniels



More information about the Interest mailing list