pre-condition: we have the lock, arbitrary thread
| 743 | |
| 744 | // pre-condition: we have the lock, arbitrary thread |
| 745 | void Probe::notifyQueuedObjectChanges() |
| 746 | { |
| 747 | if (m_queueTimer->isActive()) |
| 748 | return; |
| 749 | |
| 750 | if (thread() == QThread::currentThread()) { |
| 751 | m_queueTimer->start(); |
| 752 | } else { |
| 753 | static QMetaMethod m; |
| 754 | if (m.methodIndex() < 0) { |
| 755 | const auto idx = QTimer::staticMetaObject.indexOfMethod("start()"); |
| 756 | Q_ASSERT(idx >= 0); |
| 757 | m = QTimer::staticMetaObject.method(idx); |
| 758 | Q_ASSERT(m.methodIndex() >= 0); |
| 759 | } |
| 760 | m.invoke(m_queueTimer, Qt::QueuedConnection); |
| 761 | } |
| 762 | } |
| 763 | |
| 764 | bool Probe::eventFilter(QObject *receiver, QEvent *event) |
| 765 | { |