MCPcopy Create free account
hub / github.com/KDAB/GammaRay / preSignalActivate

Method preSignalActivate

plugins/timertop/timermodel.cpp:347–374  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

345}
346
347void TimerModel::preSignalActivate(QObject *caller, int methodIndex)
348{
349 // We are in the thread of the caller emitting the signal
350 // The probe did NOT locked the objectLock at this point.
351 Q_ASSERT(TimerModel::isInitialized());
352
353 if (!canHandleCaller(caller, methodIndex))
354 return;
355
356 QMutexLocker locker(&m_mutex);
357 const TimerId id(caller);
358 auto it = m_gatheredTimersData.find(id);
359
360 if (it == m_gatheredTimersData.end()) {
361 it = m_gatheredTimersData.insert(id, TimerIdData());
362 // safe, we are called from the receiver thread, before a slot had a chance to delete caller
363 it.value().update(id);
364 }
365
366 if (methodIndex != m_qmlTimerRunningChangedIndex) {
367 if (it.value().functionCallTimer.isValid()) {
368 cout << "TimerModel::preSignalActivate(): Recursive timeout for timer "
369 << ( void * )caller << "!" << endl;
370 return;
371 }
372 it.value().functionCallTimer.start();
373 }
374}
375
376void TimerModel::postSignalActivate(QObject *caller, int methodIndex)
377{

Callers 1

signal_begin_callbackFunction · 0.80

Calls 7

endMethod · 0.80
TimerIdDataClass · 0.70
insertMethod · 0.45
updateMethod · 0.45
valueMethod · 0.45
isValidMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected