Beispiel #1
0
void QQmlThreadPrivate::run()
{
    lock();

    wakeOne();

    unlock();

    q->startupThread();
    exec();
    q->shutdownThread();
}
Beispiel #2
0
void QQmlThreadPrivate::threadEvent() 
{
    lock();

    if (m_shutdown) {
        quit();
        wakeOne();
        unlock();
        q->shutdownThread();
    } else {
        m_threadProcessing = true;

        while (!threadList.isEmpty()) {
            QQmlThread::Message *message = threadList.first();

            unlock();

            message->call(q);

            lock();

            delete threadList.takeFirst();
        }

        wakeOne();

        m_threadProcessing = false;

        unlock();
    }
}
Beispiel #3
0
// Trigger even in thread.  Must be called from main thread.
void QQmlThreadPrivate::triggerThreadEvent()
{
    Q_ASSERT(!q->isThisThread());
    QCoreApplication::postEvent(this, new QEvent(QEvent::User));
}
Beispiel #4
0
// Trigger mainEvent in main thread.  Must be called from thread.
void QQmlThreadPrivate::triggerMainEvent()
{
    Q_ASSERT(q->isThisThread());
    QCoreApplication::postEvent(&m_mainObject, new QEvent(QEvent::User));
}