int QThread::exec(){ Q_D(QThread); QMutexLocker locker(&d->mutex); d->data->quitNow = false; if (d->exited) { d->exited = false; // этой строки нет в Qt 4.7 return d->returnCode; } locker.unlock(); QEventLoop eventLoop; int returnCode = eventLoop.exec(); locker.relock(); d->exited = false; d->returnCode = -1; return returnCode;}