name our glib event sources to ease debugging
glib event sources can have a name, but it is not required. Internal to glib, it is common to give them a name, see for example https://git.io/JTZ8g . This patch gives a name to each glib event source created in qtbase. Task-number: QTBUG-84291 Change-Id: I4f04526dcec082242312e3a66da2adf37a22e626 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
This commit is contained in:
parent
ff776a3059
commit
5872a89474
@ -318,32 +318,36 @@ QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(GMainContext *context)
|
||||
#endif
|
||||
|
||||
// setup post event source
|
||||
postEventSource = reinterpret_cast<GPostEventSource *>(g_source_new(&postEventSourceFuncs,
|
||||
sizeof(GPostEventSource)));
|
||||
GSource *source = g_source_new(&postEventSourceFuncs, sizeof(GPostEventSource));
|
||||
g_source_set_name(source, "[Qt] GPostEventSource");
|
||||
postEventSource = reinterpret_cast<GPostEventSource *>(source);
|
||||
|
||||
postEventSource->serialNumber.storeRelaxed(1);
|
||||
postEventSource->d = this;
|
||||
g_source_set_can_recurse(&postEventSource->source, true);
|
||||
g_source_attach(&postEventSource->source, mainContext);
|
||||
|
||||
// setup socketNotifierSource
|
||||
socketNotifierSource =
|
||||
reinterpret_cast<GSocketNotifierSource *>(g_source_new(&socketNotifierSourceFuncs,
|
||||
sizeof(GSocketNotifierSource)));
|
||||
source = g_source_new(&socketNotifierSourceFuncs, sizeof(GSocketNotifierSource));
|
||||
g_source_set_name(source, "[Qt] GSocketNotifierSource");
|
||||
socketNotifierSource = reinterpret_cast<GSocketNotifierSource *>(source);
|
||||
(void) new (&socketNotifierSource->pollfds) QList<GPollFDWithQSocketNotifier *>();
|
||||
g_source_set_can_recurse(&socketNotifierSource->source, true);
|
||||
g_source_attach(&socketNotifierSource->source, mainContext);
|
||||
|
||||
// setup normal and idle timer sources
|
||||
timerSource = reinterpret_cast<GTimerSource *>(g_source_new(&timerSourceFuncs,
|
||||
sizeof(GTimerSource)));
|
||||
source = g_source_new(&timerSourceFuncs, sizeof(GTimerSource));
|
||||
g_source_set_name(source, "[Qt] GTimerSource");
|
||||
timerSource = reinterpret_cast<GTimerSource *>(source);
|
||||
(void) new (&timerSource->timerList) QTimerInfoList();
|
||||
timerSource->processEventsFlags = QEventLoop::AllEvents;
|
||||
timerSource->runWithIdlePriority = false;
|
||||
g_source_set_can_recurse(&timerSource->source, true);
|
||||
g_source_attach(&timerSource->source, mainContext);
|
||||
|
||||
idleTimerSource = reinterpret_cast<GIdleTimerSource *>(g_source_new(&idleTimerSourceFuncs,
|
||||
sizeof(GIdleTimerSource)));
|
||||
source = g_source_new(&idleTimerSourceFuncs, sizeof(GIdleTimerSource));
|
||||
g_source_set_name(source, "[Qt] GIdleTimerSource");
|
||||
idleTimerSource = reinterpret_cast<GIdleTimerSource *>(source);
|
||||
idleTimerSource->timerSource = timerSource;
|
||||
g_source_set_can_recurse(&idleTimerSource->source, true);
|
||||
g_source_attach(&idleTimerSource->source, mainContext);
|
||||
|
@ -88,8 +88,11 @@ QPAEventDispatcherGlibPrivate::QPAEventDispatcherGlibPrivate(GMainContext *conte
|
||||
: QEventDispatcherGlibPrivate(context)
|
||||
{
|
||||
Q_Q(QPAEventDispatcherGlib);
|
||||
userEventSource = reinterpret_cast<GUserEventSource *>(g_source_new(&userEventSourceFuncs,
|
||||
sizeof(GUserEventSource)));
|
||||
|
||||
GSource *source = g_source_new(&userEventSourceFuncs, sizeof(GUserEventSource));
|
||||
g_source_set_name(source, "[Qt] GUserEventSource");
|
||||
userEventSource = reinterpret_cast<GUserEventSource *>(source);
|
||||
|
||||
userEventSource->q = q;
|
||||
userEventSource->d = this;
|
||||
g_source_set_can_recurse(&userEventSource->source, true);
|
||||
|
@ -104,8 +104,9 @@ QXcbGlibEventDispatcher::QXcbGlibEventDispatcher(QXcbConnection *connection, QOb
|
||||
m_xcbEventSourceFuncs.dispatch = xcbSourceDispatch;
|
||||
m_xcbEventSourceFuncs.finalize = nullptr;
|
||||
|
||||
m_xcbEventSource = reinterpret_cast<XcbEventSource *>(
|
||||
g_source_new(&m_xcbEventSourceFuncs, sizeof(XcbEventSource)));
|
||||
GSource *source = g_source_new(&m_xcbEventSourceFuncs, sizeof(XcbEventSource));
|
||||
g_source_set_name(source, "[Qt] XcbEventSource");
|
||||
m_xcbEventSource = reinterpret_cast<XcbEventSource *>(source);
|
||||
|
||||
m_xcbEventSource->dispatcher = this;
|
||||
m_xcbEventSource->dispatcher_p = d_func();
|
||||
|
Loading…
x
Reference in New Issue
Block a user