diff --git a/src/corelib/kernel/qeventdispatcher_glib.cpp b/src/corelib/kernel/qeventdispatcher_glib.cpp index 1e906c4b275..d8d0f3a9252 100644 --- a/src/corelib/kernel/qeventdispatcher_glib.cpp +++ b/src/corelib/kernel/qeventdispatcher_glib.cpp @@ -68,10 +68,12 @@ static gboolean socketNotifierSourceDispatch(GSource *source, GSourceFunc, gpoin QEvent event(QEvent::SockAct); GSocketNotifierSource *src = reinterpret_cast(source); - for (src->activeNotifierPos = 0; src->activeNotifierPos < src->pollfds.size(); - ++src->activeNotifierPos) { + src->activeNotifierPos = 0; + while (src->activeNotifierPos < src->pollfds.size()) { GPollFDWithQSocketNotifier *p = src->pollfds.at(src->activeNotifierPos); + ++src->activeNotifierPos; + if ((p->pollfd.revents & p->pollfd.events) != 0) QCoreApplication::sendEvent(p->socketNotifier, &event); }