added some threading and event debugging

This commit is contained in:
ZappoMan 2014-04-20 19:48:17 -07:00
parent c2bcb32804
commit 59cbda20c6
4 changed files with 40 additions and 0 deletions

View file

@ -17,11 +17,13 @@
#include <AccountManager.h>
#include <Assignment.h>
#include <DebuggingEventDispatcher.h>
#include <Logging.h>
#include <NodeList.h>
#include <PacketHeaders.h>
#include <SharedUtil.h>
#include "AssignmentFactory.h"
#include "AssignmentThread.h"
@ -144,6 +146,11 @@ void AssignmentClient::readPendingDatagrams() {
// start the deployed assignment
AssignmentThread* workerThread = new AssignmentThread(_currentAssignment, this);
qDebug() << "workerThread->eventDispatcher()=" << workerThread->eventDispatcher();
qDebug() << "thread()->eventDispatcher()=" << thread()->eventDispatcher();
//DebuggingEventDispatcher* debugDispatcher = new DebuggingEventDispatcher(workerThread);
connect(workerThread, &QThread::started, _currentAssignment.data(), &ThreadedAssignment::run);
connect(_currentAssignment.data(), &ThreadedAssignment::finished, workerThread, &QThread::quit);
connect(_currentAssignment.data(), &ThreadedAssignment::finished,
@ -162,6 +169,10 @@ void AssignmentClient::readPendingDatagrams() {
// Starts an event loop, and emits workerThread->started()
workerThread->start();
qDebug() << "workerThread->eventDispatcher()=" << workerThread->eventDispatcher();
qDebug() << "thread()->eventDispatcher()=" << thread()->eventDispatcher();
} else {
qDebug() << "Received an assignment that could not be unpacked. Re-requesting.";
}

View file

@ -9,6 +9,7 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
#include <QAbstractEventDispatcher>
#include <QJsonObject>
#include <QNetworkAccessManager>
#include <QTimer>
@ -842,6 +843,9 @@ quint64 lastReadPendingDatagrams = usecTimestampNow();
quint64 lastProcessNodeData = usecTimestampNow();
void OctreeServer::readPendingDatagrams() {
qDebug() << "OctreeServer::readPendingDatagrams()... thread()->eventDispatcher()=" << thread()->eventDispatcher();
quint64 now = usecTimestampNow();
if ((now - lastReadPendingDatagrams) > 100000) {
//qDebug() << "OctreeServer::readPendingDatagrams(): since lastReadPendingDatagrams=" << (now - lastReadPendingDatagrams) << "usecs";
@ -969,7 +973,22 @@ qDebug() << "got a query...";
}
void OctreeServer::aboutToBlock() {
qDebug() << "OctreeServer::aboutToBlock()...";
}
void OctreeServer::awake() {
qDebug() << "OctreeServer::awake()...";
}
void OctreeServer::run() {
QAbstractEventDispatcher* eventDispatcher = thread()->eventDispatcher();
qDebug() << "OctreeServer::run()... thread()->eventDispatcher()=" << eventDispatcher;
connect(eventDispatcher, &QAbstractEventDispatcher::aboutToBlock, this, &OctreeServer::aboutToBlock);
connect(eventDispatcher, &QAbstractEventDispatcher::awake, this, &OctreeServer::awake);
_safeServerName = getMyServerName();
// Before we do anything else, create our tree...

View file

@ -127,6 +127,8 @@ public slots:
void nodeKilled(SharedNodePointer node);
void sendStatsPacket();
void doNothing();
void awake();
void aboutToBlock();
protected:
void parsePayload();

View file

@ -12,6 +12,7 @@
#include <QtCore/QCoreApplication>
#include <QtCore/QJsonObject>
#include <QtCore/QTimer>
#include <QThread>
#include "Logging.h"
#include "SharedUtil.h"
@ -57,6 +58,9 @@ void ThreadedAssignment::commonInit(const QString& targetName, NodeType_t nodeTy
connect(statsTimer, &QTimer::timeout, this, &ThreadedAssignment::sendStatsPacket);
statsTimer->start(1000);
}
qDebug() << "ThreadedAssignment::commonInit()... thread()->eventDispatcher()=" << thread()->eventDispatcher();
}
void ThreadedAssignment::addPacketStatsAndSendStatsPacket(QJsonObject &statsObject) {
@ -79,6 +83,10 @@ void ThreadedAssignment::sendStatsPacket() {
quint64 lastCheckIn = usecTimestampNow();
void ThreadedAssignment::checkInWithDomainServerOrExit() {
qDebug() << "ThreadedAssignment::checkInWithDomainServerOrExit()... thread()->eventDispatcher()=" << thread()->eventDispatcher();
quint64 now = usecTimestampNow();
if ((now - lastCheckIn) > 100000) {
//qDebug() << "ThreadedAssignment::checkInWithDomainServerOrExit(): since lastCheckIn=" << (now - lastCheckIn) << "usecs";