void TransactionThread::run() { this->moveToThread(this); Transaction *transact = 0; forever { { QMutexLocker locker(&mutex); if (transactions.isEmpty()) transactionAdded.wait(&mutex); transact = transactions.dequeue(); if (transact == EndTransaction) break; } transact->apply(); delete transact; transact = 0; } }