Marble
7 #include "AbstractWorkerThread.h"
8 #include "MarbleDebug.h"
16 const int WAIT_ATTEMPTS = 20;
17 const int WAIT_TIME = 100;
19 class AbstractWorkerThreadPrivate
22 explicit AbstractWorkerThreadPrivate( AbstractWorkerThread *parent )
29 ~AbstractWorkerThreadPrivate()
32 m_parent->wait( 1000 );
39 AbstractWorkerThread *m_parent;
43 AbstractWorkerThread::AbstractWorkerThread(
QObject *parent )
45 d( new AbstractWorkerThreadPrivate( this ) )
49 AbstractWorkerThread::~AbstractWorkerThread()
54 void AbstractWorkerThread::ensureRunning()
57 if ( !d->m_running ) {
58 if (
wait( 2 * WAIT_TIME ) ) {
65 void AbstractWorkerThread::run()
67 int waitAttempts = WAIT_ATTEMPTS;
69 d->m_runningMutex.lock();
70 if ( !workAvailable() ) {
72 if ( !waitAttempts || d->m_end ) {
74 d->m_runningMutex.unlock();
78 d->m_runningMutex.unlock();
83 d->m_runningMutex.unlock();
86 waitAttempts = WAIT_ATTEMPTS;
93 #include "moc_AbstractWorkerThread.cpp"
void msleep(unsigned long msecs)
bool wait(QDeadlineTimer deadline)
void start(QThread::Priority priority)
Binds a QML item to a specific geodetic location in screen coordinates.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Tue Oct 3 2023 04:09:47 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.